Ro = 50; f1C = 9500; % вказуємо нижню частоту зрізу 3дБ 9500Гц задав змінну f1C f2C = 10500; % вказуємо верхню частоту зрізу 3дБ 10500Гц задав змінну f2C Ls = % розрахунок для параметру індуктивності послідовного сегменту Cs = % розрахунок для параметру ємності послідовного сегменту Lp = % розрахунок для параметру індуктивності паралельного сегменту Cp = % розрахунок для параметру ємності паралельного сегменту ckt = circuit('butterworthBPF'); %circuit object, щоб створити схему, який може містити такі елементи, як R, L, C add(ckt,[],inductor(Ls)); % Ls1 % Cs1 % Cp1 % Lp1 % Lp2 % Cp2 Seg1 = rfckt.shuntrlc('L',Lp,'C',Cp); % Сегмент із Lр і Ср формують паралельну частину схеми за допомогою об'єкта rfckt.shuntrlc Seg2 = rfckt.seriesrlc('L',Ls,'C',Cs); % Сегмент із Ls і Сs формують послідовну частину схеми за допомогою об'єкта rfckt.seriesrlc % Сегмент із Lр і Ср cktBPF = ; % Підключення 2-портових мереж за допомогою об'єкта rfckt.cascade freq = linspace; % задаємо лінійний простір для частоти % analyze - для отримання S-параметрів 2-портової мережі в широкому частотному діапазоні. % обчислення функції передачі напруги від входу до виходу % Наближення даних із використанням об'єкта стабільної раціональної функції. Відображають ідеальну RC-схему з дуже високим ступенем точності. % ширина частот для відображення необхідного фрагменту графіка figure % налаштування графіку 1 semilogy(freq,abs(tf),widerFreqs,abs(resp),'--','LineWidth',2) xlabel('') % підпис для абсцисс ylabel('') % підпис для ординат legend('') % легенда title('The rational fit behaves well outside the fitted frequency range.') % заголовок fCenter = 10e3; % центральна частота fBlocker = 8.0e3; % частота блокування шуму. period = 1/fCenter; % розрахунок періоду орієнтовно на центральну частоту sampleTime = period/16; signalLen = 8192; t = (0:signalLen-1)'*sampleTime; % 256 periods input = sin(2*pi*fCenter*t); % Чистий вхідний сигнал rng('default') noise = randn(size(t)) + sin(2*pi*fBlocker*t); noisyInput = input + noise; % Зашумлений вхідний сигнал output = timeresp(fit,noisyInput,sampleTime);%Функція timeresp обчислює аналітичний розв'язок рівнянь простору станів, визначених вхідним сигналом. xmax = t(end)/32; 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)') NFFT = 2^nextpow2(signalLen); % Накладання графіку шуму і графіку вихідного сигналу 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.2]) 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.2]) legend('input+noise','output') title('Filter characteristic and noisy input spectrum.') xlabel('Frequency (Hz)') ylabel('Magnitude (Volts)')