用MATLAB进行抽样信号观测及抽样定理验证; (2)滤波器幅频特性对抽样信号恢复的影响;滤波器相频特性对抽样信号恢复的影响
时间: 2023-08-02 07:11:36 浏览: 197
1. 抽样信号观测及抽样定理验证
首先,我们生成一个信号,并进行采样。这里我们生成一个频率为100 Hz的正弦波信号,并使用500 Hz的采样频率进行采样。
```matlab
% 生成信号
fs = 500; % 采样频率
t = 0:1/fs:1; % 时间向量
f = 100; % 信号频率
x = sin(2*pi*f*t); % 正弦波信号
% 进行采样
Ts = 1/100; % 采样周期
n = 0:Ts:1; % 采样时刻
xn = sin(2*pi*f*n); % 采样信号
% 绘制信号和采样信号
figure;
subplot(2,1,1);
plot(t,x);
title('信号');
subplot(2,1,2);
stem(n,xn);
title('采样信号');
```
接下来,我们使用sinc插值函数进行重构,并比较原始信号和重构信号的均方误差。
```matlab
% 进行重构
y = zeros(size(t)); % 初始化重构信号
for i = 1:length(xn)
y = y + xn(i)*sinc((t-(i-1)*Ts)*fs);
end
% 绘制原始信号和重构信号
figure;
subplot(2,1,1);
plot(t,x);
title('原始信号');
subplot(2,1,2);
plot(t,y);
title('重构信号');
% 比较原始信号和重构信号
mse = sum((x-y).^2)/length(x);
fprintf('均方误差为:%f\n',mse);
```
如果抽样定理成立,那么重构信号应该和原始信号非常接近。你可以尝试修改采样频率和信号频率,并比较不同情况下的均方误差,以验证抽样定理。
2. 滤波器幅频特性对抽样信号恢复的影响
在实际应用中,我们通常需要使用低通滤波器来去除采样信号中的高频成分,以便更好地恢复原始信号。这里我们使用一个一阶低通滤波器进行滤波,并比较不同截止频率下的恢复效果。
```matlab
% 设计低通滤波器
fc = 50; % 截止频率
[b,a] = butter(1,fc*2/fs);
% 进行滤波
xn_filtered = filter(b,a,xn);
% 进行重构
y = zeros(size(t)); % 初始化重构信号
for i = 1:length(xn_filtered)
y = y + xn_filtered(i)*sinc((t-(i-1)*Ts)*fs);
end
% 绘制原始信号、采样信号和重构信号
figure;
subplot(3,1,1);
plot(t,x);
title('原始信号');
subplot(3,1,2);
stem(n,xn);
title('采样信号');
subplot(3,1,3);
plot(t,y);
title('重构信号');
% 比较原始信号和重构信号
mse = sum((x-y).^2)/length(x);
fprintf('均方误差为:%f\n',mse);
```
可以看到,当截止频率较低时,重构信号的质量较好;而当截止频率较高时,重构信号的质量明显降低。这是因为滤波器的幅频特性对重构信号的恢复有影响。
3. 滤波器相频特性对抽样信号恢复的影响
除了幅频特性外,滤波器的相频特性也会对重构信号的恢复有影响。这里我们使用一个二阶Butterworth低通滤波器进行滤波,并比较不同阶数下的恢复效果。
```matlab
% 设计低通滤波器
fc = 50; % 截止频率
n = 4; % 阶数
[b,a] = butter(n,fc*2/fs);
% 进行滤波
xn_filtered = filter(b,a,xn);
% 进行重构
y = zeros(size(t)); % 初始化重构信号
for i = 1:length(xn_filtered)
y = y + xn_filtered(i)*sinc((t-(i-1)*Ts)*fs);
end
% 绘制原始信号、采样信号和重构信号
figure;
subplot(3,1,1);
plot(t,x);
title('原始信号');
subplot(3,1,2);
stem(n,xn);
title('采样信号');
subplot(3,1,3);
plot(t,y);
title('重构信号');
% 比较原始信号和重构信号
mse = sum((x-y).^2)/length(x);
fprintf('均方误差为:%f\n',mse);
% 绘制滤波器的相频特性
figure;
[h,w] = freqz(b,a);
subplot(2,1,1);
plot(w/pi,abs(h));
title('幅频特性');
subplot(2,1,2);
plot(w/pi,angle(h));
title('相频特性');
```
可以看到,随着阶数的增加,重构信号的质量有所提升。同时,滤波器的相频特性对重构信号的恢复也有影响,因此我们需要在设计滤波器时考虑到滤波器的相频特性。
阅读全文