В этом примере показано, как вычислить отклик временной области простого полосового фильтра:
Выберите значения индуктивности и емкости с помощью классического метода проектирования параметров изображения.
Использовать rfckt.seriesrlc, rfckt.shuntrlc, и rfckt.cascade объекты для программного построения схемы Баттерворта в виде 2-портовой сети.
Использовать analyze для извлечения S-параметров 2-портовой сети в широком диапазоне частот.
Использовать s2tf функция для вычисления функции передачи напряжения от входа к выходу.
Использовать rationalfit функция для генерации рациональных посадок, которые захватывают идеальную RC-схему с очень высокой степенью точности.
Создайте шумный сигнал входного напряжения.
Использовать timeresp функция для вычисления переходного отклика на шумный сигнал входного напряжения.
Метод проектирования параметров изображения является основой для аналитического вычисления значений последовательных и параллельных компонентов в пассивных фильтрах. Для получения дополнительной информации об этом методе см. «Полный беспроводной дизайн» Коттера В. Сайра, McGraw-Hill 2008 с. 331.

Рисунок 1: Полосовой фильтр Butterworth, состоящий из двух полусекций.
Следующий код MATLAB ® генерирует значения компонентов для полосового фильтра с нижней частотой отсечки 3-dB 2,4 ГГц и верхней частотой отсечки 3 дБ 2,5 ГГц.
Ro = 50; f1C = 2400e6; f2C = 2500e6; Ls = (Ro / (pi*(f2C - f1C)))/2; Cs = 2*(f2C - f1C)/(4*pi*Ro*f2C*f1C); Lp = 2*Ro*(f2C - f1C)/(4*pi*f2C*f1C); Cp = (1/(pi*Ro*(f2C - f1C)))/2;
Компоновочные блоки L и C формируются путем выбора соответствующих значений с помощью rfckt.shuntrlc объект, показанный на рис. 2, или rfckt.seriesrlc объект, показанный на рис. 3. Затем компоновочные блоки соединяются вместе с rfckt.cascade как показано на рис. 4.

Рис. 2: 2-портовая сеть, созданная rfckt.shuntrlc объект

Рис. 3: 2-портовая сеть, созданная rfckt.seriesrlc объект

Рис. 4: Подключение 2-портовых сетей к rfckt.cascade объект
Seg1 = rfckt.seriesrlc('L',Ls,'C',Cs); Seg2 = rfckt.shuntrlc('L',Lp,'C',Cp); Seg3 = rfckt.shuntrlc('L',Lp,'C',Cp); Seg4 = rfckt.seriesrlc('L',Ls,'C',Cs); cktBPF = rfckt.cascade('Ckts',{Seg1,Seg2,Seg3,Seg4});
analyze функция извлекает S-параметры из схемы по заданному вектору частот. В этом примере представлен набор частот, охватывающих полосу пропускания фильтра и анализирующих с помощью эталона 50-Ohm по умолчанию, импеданса источника и импедансов нагрузки. Далее, s2tf функция вычисляет передаточную функцию напряжения по модели S-параметра схемы. Наконец, мы генерируем высокоточное рациональное приближение с использованием rationalfit функция. Результирующая аппроксимация соответствует точности обработки в сети.
freq = linspace(2e9,3e9,101); analyze(cktBPF,freq); sparams = cktBPF.AnalyzedResult.S_Parameters; tf = s2tf(sparams); fit = rationalfit(freq,tf);
Используйте freqresp функция для проверки того, что рациональная аппроксимация аппроксимации имеет разумное поведение вне обеих сторон аппроксимированного частотного диапазона.
widerFreqs = linspace(2e8,5e9,1001); resp = freqresp(fit,widerFreqs); figure semilogy(freq,abs(tf),widerFreqs,abs(resp),'--','LineWidth',2) xlabel('Frequency (Hz)') ylabel('Magnitude') legend('data','fit') title('The rational fit behaves well outside the fitted frequency range.')

Этот полосовой фильтр должен быть способен восстанавливать синусоидальный сигнал при 2,45 ГГц, который становится шумным путем включения нулевого среднего случайного шума и блокировщика при 2,35 ГГц. Следующий код MATLAB формирует такой сигнал из 4096 выборок.
fCenter = 2.45e9; fBlocker = 2.35e9; period = 1/fCenter; sampleTime = period/16; signalLen = 8192; t = (0:signalLen-1)'*sampleTime; % 256 periods input = sin(2*pi*fCenter*t); % Clean input signal rng('default') noise = randn(size(t)) + sin(2*pi*fBlocker*t); noisyInput = input + noise; % Noisy input signal
timeresp функция вычисляет аналитическое решение уравнений состояния-пространства, определяемых рациональной аппроксимацией и входным сигналом.
output = timeresp(fit,noisyInput,sampleTime);
Постройте график входного сигнала, шумного входного сигнала и выходного сигнала полосового фильтра в окне рисунка.
xmax = t(end)/8; figure subplot(3,1,1) plot(t,input) axis([0 xmax -1.5 1.5]) title('Input') subplot(3,1,2) plot(t,noisyInput) axis([0 xmax floor(min(noisyInput)) ceil(max(noisyInput))]) title('Noisy Input') ylabel('Amplitude (volts)') subplot(3,1,3) plot(t,output) axis([0 xmax -1.5 1.5]) title('Filter Output') xlabel('Time (sec)')

Наложение шумового входа и отклика фильтра в частотной области объясняет, почему операция фильтрации успешна. И блокирующий сигнал при 2,35 ГГц, и большая часть шума значительно ослаблены.
NFFT = 2^nextpow2(signalLen); % Next power of 2 from length of y Y = fft(noisyInput,NFFT)/signalLen; samplingFreq = 1/sampleTime; f = samplingFreq/2*linspace(0,1,NFFT/2+1)'; O = fft(output,NFFT)/signalLen; figure subplot(2,1,1) plot(freq,abs(tf),'b','LineWidth',2) axis([freq(1) freq(end) 0 1.1]) legend('filter transfer function') ylabel('Magnitude') subplot(2,1,2) plot(f,2*abs(Y(1:NFFT/2+1)),'g',f,2*abs(O(1:NFFT/2+1)),'r','LineWidth',2) axis([freq(1) freq(end) 0 1.1]) legend('input+noise','output') title('Filter characteristic and noisy input spectrum.') xlabel('Frequency (Hz)') ylabel('Magnitude (Volts)')
