В этом примере показано, как вычислить отклик временной области простого полосового фильтра. Восемь этапов, участвующих в вычислении отклика во временной области простого полосового фильтра:
Используйте классическую схему параметров изображения для назначения значений индуктивности и емкости полосовому фильтру.
Используйте circuit, capacitor, и inductor объекты с add для программного построения схемы Баттерворта.
Используйте setports для определения канала как 2-портовой сети.
Используйте sparameters функция извлечения S-параметров 2-портовой сети в широком диапазоне частот.
Используйте s2tf функция для вычисления функции передачи напряжения от входа к выходу.
Используйте rational создание рациональных посадок, захватывающих идеальную RC-схему с очень высокой степенью точности.
Используйте randn создание шума для создания шумового сигнала входного напряжения.
Используйте timeresp function вычисляют отклик переходного процесса на шумный сигнал входного напряжения.
Дизайн параметров изображения является основой для аналитического вычисления значений последовательных и параллельных компонентов в пассивных фильтрах. Для получения дополнительной информации о параметрах изображения см. «Полный беспроводной дизайн» Коттера В. Сайра, McGraw-Hill 2008 с. 331.

Рисунок 1: Полосовой фильтр Butterworth, состоящий из двух полусекций.
Создайте значения компонентов для полосового фильтра с нижней частотой отсечки 3 дБ 2,4 ГГц и верхней частотой отсечки 3 дБ 2,5 ГГц.
Ro = 50; f1C = 2400e6; f2C = 2500e6; Ls = (Ro / (pi*(f2C - f1C)))/2; % Ls1 and Ls2 Cs = 2*(f2C - f1C)/(4*pi*Ro*f2C*f1C); % Cs1 and Cs2 Lp = 2*Ro*(f2C - f1C)/(4*pi*f2C*f1C); % Lp1 and Lp2 Cp = (1/(pi*Ro*(f2C - f1C)))/2; % Cp1 and Cp2
Перед построением цепи с помощью inductor и capacitor объекты, узлы в цепи нумеруются. Это показано на рис. 1.

Рис. 2: Номера узлов, добавленные к полосовому фильтру Butterworth.
Создать circuit и заполните его с помощью inductor и capacitor с использованием add функция.
ckt = circuit('butterworthBPF'); add(ckt,[3 2],inductor(Ls)); % Ls1 add(ckt,[4 3],capacitor(Cs)); % Cs1 add(ckt,[5 4],capacitor(Cs)); % Cs2 add(ckt,[6 5],inductor(Ls)); % Ls2 add(ckt,[4 1],capacitor(Cp)); % Cp1 add(ckt,[4 1],inductor(Lp)); % Lp1 add(ckt,[4 1],inductor(Lp)); % Lp2 add(ckt,[4 1],capacitor(Cp)); % Cp2
Для извлечения S-параметров из объекта цепи сначала используйте setports для определения канала как 2-портовой сети.
freq = linspace(2e9,3e9,101);
Используйте sparameters функция извлечения S-параметров на интересующих частотах.
setports(ckt,[2 1],[6 1]) S = sparameters(ckt,freq);
Используйте s2tf для генерации передаточной функции из объекта S-параметра.
tfS = s2tf(S);
Используйте rational объект для подгонки данных передаточной функции к рациональной функции.
fit = rational(freq,tfS);
Используйте freqresp функция для проверки того, что рациональная аппроксимация аппроксимации имеет разумное поведение вне обеих сторон аппроксимированного частотного диапазона.
widerFreqs = linspace(2e8,5e9,1001); resp = freqresp(fit,widerFreqs);
График для визуализации аппроксимации рациональной посадки. Рациональная посадка ведет себя хорошо вне установленного диапазона частот.
figure semilogy(freq,abs(tfS),widerFreqs,abs(resp),'--','LineWidth',2) xlabel('Frequency (Hz)'); ylabel('Magnitude'); legend('data','fit'); title('Rational Fit Approximation');

Для проверки полосового фильтра, разработанного по методике Image Parameter, из шумного входного сигнала восстанавливают синусоидальный сигнал с частотой 2,45 ГГц. Входной шумовой сигнал генерируется путем включения нулевого среднего случайного шума и блокировщика на частоте 2,35 ГГц во входной сигнал.
Создайте входной и шумовой входной сигнал с 8192 выборками.
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(tfS),'b','LineWidth',2) axis([freq(1) freq(end) 0 1.1]); legend('filter transfer function'); title('Transfer function of Bandpass filter'); 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)');

Чтобы вычислить и отобразить этот ответ полосового фильтра с использованием объектов RFCKT, см. раздел Ответ полосового фильтра с использованием объектов RFCKT.