数字信号处理实验(三):连续时间信号的数字处理

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xiaomo_haa/article/details/84954600

目录

一、实验目的:

二、实验内容及要求:

1. 连续时间信号的抽样及重构:

2. 模拟滤波器的设计:

三、实验结果及问题回答:

1. 连续时间信号的抽样及重构:

2. 模拟滤波器的设计:


一、实验目的:

    掌握通过周期抽样实现连续时间信号到离散时间信号的转换,验证抽样定理,了解信号重构的过程;掌握模拟滤波器的设计方法。

二、实验内容及要求:

1. 连续时间信号的抽样及重构:

  (1)修改程序P5.1,将正弦信号的频率分别改为3Hz和7Hz,画出抽样结果图,相应的等效离散时间信号之间有差别吗?若没有差别,为什么?

  (2)修改程序P5.2,将正弦信号的频率分别改为3Hz和7Hz,画出重构信号。

2. 模拟滤波器的设计:

修改程序P5.4,设计巴特沃兹低通滤波器,其中通带截止频率为3000Hz,阻带截止频率为4000Hz,通带波纹0.5dB,最小阻带衰减30dB,绘制增益响应。所设计的滤波器的阶数和3dB截止频率分别是多少?

三、实验结果及问题回答:

1. 连续时间信号的抽样及重构:

  1. 实验结果:
clf;

t = 0:0.0005:1;

f = 3;%设定正弦信号的频率

xa = cos(2*pi*f*t);%生成正弦信号

subplot(2,1,1)

plot(t,xa);grid

xlabel('Time, msec');ylabel('Amplitude');

title('Continuous-time signal x_{a}(t)');

axis([0 1 -1.2 1.2])

subplot(2,1,2);

T = 0.1;%设定采样周期

n = 0:T:1;

xs = cos(2*pi*f*n);%对正弦信号进行采样

k = 0:length(n)-1;

stem(k,xs);grid;

xlabel('Time index n');ylabel('Amplitude');

title('Discrete-time signal x[n]');

axis([0 (length(n)-1) -1.2 1.2])

clf;

t = 0:0.0005:1;

f = 7;%设定正弦信号的频率

xa = cos(2*pi*f*t);%生成正弦信号

subplot(2,1,1)

plot(t,xa);grid

xlabel('Time, msec');ylabel('Amplitude');

title('Continuous-time signal x_{a}(t)');

axis([0 1 -1.2 1.2])

subplot(2,1,2);

T = 0.1;%设定采样周期

n = 0:T:1;

xs = cos(2*pi*f*n);%对正弦信号进行采样

k = 0:length(n)-1;

stem(k,xs);grid;

xlabel('Time index n');ylabel('Amplitude');

title('Discrete-time signal x[n]');

axis([0 (length(n)-1) -1.2 1.2])

 等效的离散时间信号没有差别,因为:cos(2\pi *3*0.1)=cos(2\pi*7*0.1)  故采样结果一样。

(2)实验结果:

clf;

T = 0.1;

f = 3;%设定正弦信号的频率

n = (0:T:1)';

xs = cos(2*pi*f*n);%生成离散的正弦信号xs

t = linspace(-0.5,1.5,500)';%利用linspace()函数来生成时间向量

ya = sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')*xs;%对离散信号进行重构

plot(n,xs,'o',t,ya);grid;

xlabel('Time, msec');ylabel('Amplitude');

title('Reconstructed continuous-time signal y_{a}(t)');

axis([-0.5  1.5  -1.2 1.2]);

clf;

T = 0.1;

f = 7;%设定正弦信号的频率

n = (0:T:1)';

xs = cos(2*pi*f*n);%生成离散的正弦信号xs

t = linspace(-0.5,1.5,500)';%利用linspace()函数来生成时间向量

ya = sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')*xs;%对离散信号进行重构

plot(n,xs,'o',t,ya);grid;

xlabel('Time, msec');ylabel('Amplitude');

title('Reconstructed continuous-time signal y_{a}(t)');

axis([-0.5  1.5  -1.2 1.2]);

2. 模拟滤波器的设计:

clf;

Fp = 3000;%设定通带截止频率

Fs = 4000;%设定阻带截止频率

Wp = 2*pi*Fp; Ws = 2*pi*Fs;

[N, Wn] = buttord(Wp, Ws, 0.5, 30,'s');%生成巴特沃兹低通滤波器的阶数和等效的低通滤波器的截止频率

[b,a] = butter(N, Wn, 's');%生成巴特沃兹体通滤波器的分子和分母向量

wa = 0:(3*Ws)/511:3*Ws;

h = freqs(b,a,wa);%求滤波器的频率响应

plot(wa/(2*pi), 20*log10(abs(h)));%绘制滤波器的增益响应

grid

xlabel('Frequency, Hz');ylabel('Gain, dB');

title('Gain response');

axis([0 3*Fs -60 5]);

  该滤波器的节数为N=16,3dB带宽为:3223.5Hz.

猜你喜欢

转载自blog.csdn.net/Xiaomo_haa/article/details/84954600