Pavel Proskura 1 25 апреля, 2016 Опубликовано 25 апреля, 2016 · Жалоба Добрый день. Возник следующий вопрос: Имеется два фильтра: 1)Стандартный КИХ-дециматор. И фильтр Приподнятого косинуса. Собственно вопрос заключается в том, как построить АЧХ каскадного соединения этих двух фильтров. Конструкция для каскадного соединения КИХ-фильтров типа такой: % Расчет КИХ-фильтра дециматора. Fs2 = 240e3; % Частота входных выборок Fpass2 = 15e3; Fstop2 = 20e3; Rp2 = 0.1; Astop2 = 60; M = 5; FIRdecim = fdesign.decimator(M, 'lowpass', Fpass2, Fstop2, Rp2, Astop2, Fs2); FC2 = design(FIRdecim); hRxFilt = comm.RaisedCosineReceiveFilter('RolloffFactor',0.5, 'InputSamplesPerSymbol',8, ... 'DecimationFactor',8); FC3 = design(hRxFilt); увы не работает. Ошибка в следующей строке: FC3 = design(hRxFilt); Оно в общем то и понятно из-за чего. А как сделать по другому, никак не соображу. Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 25 апреля, 2016 Опубликовано 25 апреля, 2016 · Жалоба http://www.mathworks.com/help/dsp/ref/dsp....ghlight=cascade http://www.mathworks.com/help/signal/ref/dfilt.cascade.html http://www.mathworks.com/help/dsp/ref/mfilt.cascade.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavel Proskura 1 25 апреля, 2016 Опубликовано 25 апреля, 2016 · Жалоба http://www.mathworks.com/help/dsp/ref/dsp....ghlight=cascade http://www.mathworks.com/help/signal/ref/dfilt.cascade.html http://www.mathworks.com/help/dsp/ref/mfilt.cascade.html Дело в том, что если я все правильно понял конструкция cascade работает только для фильтров входящих в библиотеку функций Multirate and Multistage Filters. Фильтр приподнятого косинуса туда не входит. В этом то и проблема. Может есть у кого пример описания каскадного соединения применительно к данному фильтру. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 25 апреля, 2016 Опубликовано 25 апреля, 2016 · Жалоба Добрый день. Возник следующий вопрос: Имеется два фильтра: 1)Стандартный КИХ-дециматор. И фильтр Приподнятого косинуса. Собственно вопрос заключается в том, как построить АЧХ каскадного соединения этих двух фильтров. Выкидываете дециматор из КИХ, между коэффициентами приподнятого косинуса вставляете нули в соответствии с коэффициентом децимации, полученные фильтры каскадно соединяете и подаёте дельта-импульс, строите АЧХ полученной ИХ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavel Proskura 1 25 апреля, 2016 Опубликовано 25 апреля, 2016 · Жалоба Выкидываете дециматор из КИХ, между коэффициентами приподнятого косинуса вставляете нули в соответствии с коэффициентом децимации, полученные фильтры каскадно соединяете и подаёте дельта-импульс, строите АЧХ полученной ИХ. Спасибо попробую. Собственно нашел пример как описывать подобного рода штуки. Может как и мне, кому-ни-ть бригодится. RRC_rolloff = 0.22; % RRC rolloff factor RRC_order = 34; % RRC order is one less than the filter length. RRC_L_factor = 4; % interpolate by this number in the RRC % create a SQUARE ROOT RAISED COSINE filter based on the above parameters. dRRC = fdesign.pulseshaping(RRC_L_factor,'Square Root Raised Cosine','N,Beta',RRC_order,RRC_rolloff); hRRCtemp = design(dRRC); hRRC = mfilt.firinterp(RRC_L_factor, hRRCtemp.Numerator); %--------------------------------------------------------------- % CIC COMPENSATION (CFIR) SECTION % (Note: some parameters belong to the CIC being compensated.) %--------------------------------------------------------------- CFIR_L_factor = 2; % interpolation factor of CFIR CIC_D = 1; % differential delay of CIC CIC_N = 5; % number of stages in CIC CIC_R = 8; % interpolation factor of CIC CFIR_Fp = 1e6; % passband edge frequency of CFIR CFIR_Fst = 2e6; % stopband edge frequency of CFIR CFIR_Ap = 0.2; % passband ripple of CFIR (in dB) CFIR_Ast = 80; % stopband attenuation of CFIR (in dB) CFIR_Fs = 12.5e6; % OUTPUT (interpolated) sampling frequency of CFIR % create a CIC COMPENSATION FILTER based on the above parameters dCFIR = fdesign.interpolator(CFIR_L_factor,'ciccomp', CIC_D, CIC_N, CIC_R, ... 'Fp,Fst,Ap,Ast', ... CFIR_Fp, CFIR_Fst, CFIR_Ap, CFIR_Ast, CFIR_Fs); hCFIR = design(dCFIR,'equiripple'); % create a CFIR SCALING FACTOR OBJECT % (NOTE: the coefficients are scaled to prevent loss of signal power due to % insertion of zero samples - this requires correction for convenient % plotting of the spectrum.) K_cfir = 1/CFIR_L_factor; % gain compensation value hKcfir = dfilt.scalar(K_cfir); %-------------- % CIC SECTION %-------------- CIC_Fs = 100e6; % OUTPUT (interpolated) sampling frequency of CIC CIC_iwl = 10; % CIC input % create a CIC filter object hCIC = mfilt.cicinterp(CIC_R, CIC_D, CIC_N);%, 10, CIC_Fs); % create a CIC scaling factor object K_cic = 1/(CIC_R^CIC_N); % gain compensation value hK = dfilt.scalar(K_cic); %------------------ % CASCADE SECTION %------------------ % create a cascade of the objects hCIChK = mfilt.cascade(hCIC,hK); % CIC with scaling applied hCFIRhKcfir = mfilt.cascade(hCFIR,hKcfir); % CFIR with scaling applied hCASC = mfilt.cascade(hRRC,hCFIR,hKcfir,hCIC,hK); % cascade of all filters and scalings Код для примера. Всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться