在matlab中将低通模拟滤波器应用于模拟信号

时间:2014-01-22 20:44:21

标签: matlab filter signal-processing sar

假设我在matlab中模拟SAR信号处理。你知道这样的方框图:
enter image description here
这是我现在尝试过的。

t = 0:0.01:10;
f0 = 10^(-6);
t1 = 1;
f1 = 100;
y = chirp(t,f0,t1,f1,'linear');
%starting to generate I's
y1Modulated = y.*cos(2*pi*f0*t);
y1ModulatedFrequencyDomain = fft(y1Modulated);  

如图所示,进入低通滤波器的信号是模拟信号。所以我们应该在

中使用过滤器
matlab ---> signal processing toolbox ---> Analog and Digital filters ---> Analog filters  

但我不知道使用哪个或如何获取函数的参数,如:besselapcheblap等等?

1 个答案:

答案 0 :(得分:1)

有很多方法可以实现您的目标。 以下是编写程序框图代码的一种方法:

% define some simulation parameters
fs = 80e6;      % sample rate of 80 MHz
f0 = 10e6;      % frequency of your complex mixer

% generate the chirp with whatever parameters you need
t = 0:1/fs:1000*1/fs;
y = chirp(t,9e6,6.25e-6,11e6);

% add a bit of noise to make the simulation more realistic
% here we make the signal-to-noise ratio approximately 40 dB
y = awgn(y,40,'measured');

% apply the complex mixing
y2 = y.*exp(j.*2.*pi.*f0.*t);

% create an example lowpass filter and filter the signal to remove images
[b,a] = butter(8,0.1);
y3 = filter(b,a,y2);

% plot the signals to see what they look like
figure(1);
plot(t,y);
grid on;
title('Received Chirp Signal (time domain)');
figure(2);
plot(linspace(-fs/2,fs/2,length(y)),20.*log10(abs(fftshift(fft(y)))));
grid on;
title('Received Chirp Signal (frequency domain)');
xlabel('frequency (Hz)');
ylabel('dB');
axis([-fs/2 fs/2 -30 40]);

figure(3); hold on;
plot(t,real(y3));
plot(t,imag(y3),'r');
grid on;
title('Baseband Chirp Signal (time domain)');
figure(4);
plot(linspace(-fs/2,fs/2,length(y3)),20.*log10(abs(fftshift(fft(y3)))));
grid on;
title('Baseband Chirp Signal (frequency domain)');
xlabel('frequency (Hz)');
ylabel('dB');
axis([-fs/2 fs/2 -30 40]);

enter image description here enter image description here enter image description here enter image description here

现在,您还询问了要使用哪种低通滤波器设计。这完全取决于您要实现的目标,并且您需要指定一个过滤器以满足您的要求。在我上面的例子中,我使用了8阶巴特沃斯设计。但通常使用FIR滤波器来实现线性相位响应。