西南交大信号与系统实验报告.docx

上传人:b****5 文档编号:6436116 上传时间:2023-01-06 格式:DOCX 页数:16 大小:449.11KB
下载 相关 举报
西南交大信号与系统实验报告.docx_第1页
第1页 / 共16页
西南交大信号与系统实验报告.docx_第2页
第2页 / 共16页
西南交大信号与系统实验报告.docx_第3页
第3页 / 共16页
西南交大信号与系统实验报告.docx_第4页
第4页 / 共16页
西南交大信号与系统实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

西南交大信号与系统实验报告.docx

《西南交大信号与系统实验报告.docx》由会员分享,可在线阅读,更多相关《西南交大信号与系统实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

西南交大信号与系统实验报告.docx

西南交大信号与系统实验报告

信号与系统实验报告

 

XXX

201411XXXX

微电一班

 

实验一连续时间信号的采样

一、实验目的:

用不同的采样频率采样并进行比较,验证采样定理。

对不同信号采样验证时域与频域的性质。

二、误差分析:

题目采用数值方法估计

,是把

用一个栅格序列

来近似,由于

,题中

之间的有限长度信号来近似表示。

此处存在误差。

三、实验结论:

严格地说,除了用符号处理工具箱(Symbolics)外,不可能用MATLAB来分析模拟信号。

然而如果用时间增量足够小的很密的网格对

采样,就可得到一根平滑的曲线和足够长的最大时间来显示所有的模态。

这样就可以进行近似分析。

是栅网的间隔且

,则

(2)

可以用一个数组来仿真一个模拟信号。

不要混淆采样周期

和栅网间隔

,因为后者是MATLAB中严格地用来表示模拟信号的。

类似地,付利叶变换关系也可根据

(2)近似为:

(3)

现在,如果

(也就是

)是有限长度的。

则公式(3)与离散付利叶变换关系相似,因而可以用同样的方式以MATLAB来实现,以便分析采样现象。

采样频率

必须大于2

即奈奎斯特采样频率(

为有限带宽信号

的带宽),该信号才可以由它的采样值

重构。

小于2

则会在x(n)中产生混叠,为欠采样。

产生的傅立叶变换图形是把互相交叠的

的复制品叠加的结果,所以产生了失真。

四、思考题:

1.通过实验说明信号的时域与频域成反比的关系。

从实验一做出的图形看出:

的时域是

时域的1/2倍,

的频域是

的频域的2倍。

2.分别求出

奈奎斯特采样间隔,并与例一的信号的奈奎斯特采样间隔比较。

的奈奎斯特采样频率为8000样本每秒;则奈奎斯特采样间隔为1/8000;是例一的信号

的1/2;

的奈奎斯特采样频率为2000样本/秒;则奈奎斯特采样间隔为1/2000,是例一的信号

的2倍。

五.完整书写你的全部MATLAB程序,并给出程序运行的结果图。

1.

Dt=0.00005;t=-0.005:

Dt:

0.005;xa=exp(-1000*abs(t));

%连续时间傅立叶变换

Wmax=2*pi*2000;

K=500;

k=0:

1:

K;

W=k*Wmax/K;Xa=xa*exp(-j*t'*W)*Dt;Xa=real(Xa);

W=[-fliplr(W),W(2:

501)];%频率从-WmaxtoWmax

Xa=[fliplr(Xa),Xa(2:

501)];%Xa介于-Wmax和Wmax之间

%subplot(1,1,1)

subplot(2,1,1);plot(t*1000,xa);

xlabel('t毫秒');ylabel('xa(t)');title('模拟信号')

subplot(2,1,2);

plot(W/(2*pi*1000),Xa*1000);

xlabel('频率(单位:

KHz)');ylabel('Xa(jW)*1000')

title('连续时间傅立叶变换')

 

2.

%模拟信号

Dt=0.00005;

t=-0.005:

Dt:

0.005;

xa=exp(-1000*abs(t));

%离散时间信号

Ts=0.0002;n=-25:

1:

25;x=exp(-1000*abs(n*Ts));

%离散时间傅立叶变换

K=500;

k=0:

1:

K;

w=pi*k/K;

X=x*exp(-j*n'*w);

X=real(X);

w=[-fliplr(w),w(2:

K+1)];

X=[fliplr(X),X(2:

K+1)];

subplot(1,1,1)

subplot(2,1,1);plot(t*1000,xa);

xlabel('t毫秒');

ylabel('x1(n)');

title('离散信号');holdon

stem(n*Ts*1000,x);

%gtext('Ts=0.2毫秒');holdoff

subplot(2,1,2);

plot(w/pi,X);

xlabel('以pi为单位的频率');

ylabel('X1(w)');

title('离散时间傅立叶变换');

clear

clc

[y,fs,bits]=wavread('P_n8');

n=length(y);

y_zp=fft(y,n);%对n点进行傅里叶变换到频域

f=fs*(0:

n/2-1)/n;%对应点的频率

fp=1500;fc=1700;As=100;Ap=1;%通带边缘频率fp,阻带边缘频率fc

wc=2*pi*fc/fs;wp=2*pi*fp/fs;%数字频率=模拟频率/采样频率

wdel=wc-wp;

beta=0.112*(As-8.7);

N=ceil((As-8)/2.285/wdel);

wn=kaiser(N+1,beta);

ws=(wp+wc)/2/pi;

b=fir1(N,ws,wn);

figure

(2);

freqz(b,1);

x=fftfilt(b,y);

X=fft(x,n);

figure(3);

subplot(2,2,1);

plot(f,abs(y_zp(1:

n/2)));

title('滤波前信号的频谱图');

xlabel('频率Hz');

ylabel('频率幅值');

subplot(2,2,2);

plot(f,abs(X(1:

n/2)));

title('滤波后信号频谱图');

xlabel('频率Hz');

ylabel('频率幅值');

subplot(2,2,3);

plot(y);

title('滤波前信号的时域波形');

xlabel('时间轴');

ylabel('幅值A');

subplot(2,2,4);

plot(x);

title('滤波后信号的时域波形');

xlabel('时间轴');

ylabel('幅值A');

subplot(2,2,4);

plot(x);

title('滤波后信号的时域波形');

xlabel('时间轴');

ylabel('幅值A');

sound(x,fs,bits)%回放滤波后的音频

wavwrite(x,fs,'P8');

3.

%模拟信号

Dt=0.00005;t=-0.005:

Dt:

0.005;xa=exp(-1000*abs(t));

%离散时间信号

Ts=0.001;n=-5:

1:

5;x=exp(-1000*abs(n*Ts));

%离散时间傅立叶变换

K=500;

k=0:

1:

K;

w=pi*k/K;

X=x*exp(-j*n'*w);X=real(X);

w=[-fliplr(w),w(2:

K+1)];

X=[fliplr(X),X(2:

K+1)];

subplot(1,1,1)

subplot(2,1,1);plot(t*1000,xa);

xlabel('t毫秒');

ylabel('x2(n)');

title('离散信号');holdon

stem(n*Ts*1000,x);gtext('Ts=1毫秒');holdoff

subplot(2,1,2);

plot(w/pi,X);

xlabel('以pi为单位的频率');ylabel('X2(w)');title('离散时间傅立叶变换');

 

4.

Dt=0.00005;

t=-0.01:

Dt:

0.01;%t在-0.01到0.01之间;

xa=exp(-1000*abs(0.5*t));%离散时间信号

Ts=0.001;

n=-6:

1:

6;

x=exp(-1000*abs(0.5*n*Ts));%离散时间傅立叶变换

K=500;

k=0:

1:

K;

w=pi*k/K;

X=x*exp(-j*n'*w);

X=real(X);

w=[-fliplr(w),w(2:

K+1)];

X=[fliplr(X),X(2:

K+1)];

subplot(1,1,1)

subplot(2,1,1);

plot(t*1000,xa);

xlabel('t毫秒');

ylabel('x1(n)');

title('离散信号');holdon

stem(n*Ts*1000,x);

gtext('Ts=1毫秒');holdoff

subplot(2,1,2);

plot(w/pi,X);

xlabel('以pi为单位的频率');

ylabel('X1(w)');

title('离散时间傅立叶变换');

5.

Dt=0.00005;

t=-0.0025:

Dt:

0.0025;%t在-0.0025到0.0025之间;

xa=exp(-1000*abs(2*t));%离散时间信号

Ts=0.0002;

n=-25/2:

1:

25/2;

x=exp(-1000*abs(2*n*Ts));%离散时间傅立叶变换

K=500;

k=0:

1:

K;

w=pi*k/K;

X=x*exp(-j*n'*w);

X=real(X);

w=[-fliplr(w),w(2:

K+1)];

X=[fliplr(X),X(2:

K+1)];

subplot(1,1,1)

subplot(2,1,1);plot(t*1000,xa);

xlabel('t毫秒');

ylabel('x1(n)');

title('离散信号');holdon

stem(n*Ts*1000,x);

gtext('Ts=0.2毫秒');holdoff

subplot(2,1,2);

plot(w/pi,X);

xlabel('以pi为单位的频率');

ylabel('X1(w)');

title('离散时间傅立叶变换');

6.

Dt=0.00005;

t=-0.01:

Dt:

0.01;%t在-0.01到0.01之间;

xa=exp(-1000*abs(0.5*t));%离散时间信号

Ts=0.00025;

n=-40:

1:

40;

x=exp(-1000*abs(0.5*n*Ts));%离散时间傅立叶变换

K=500;

k=0:

1:

K;

w=pi*k/K;

X=x*exp(-j*n'*w);

X=real(X);

w=[-fliplr(w),w(2:

K+1)];

X=[fliplr(X),X(2:

K+1)];

subplot(1,1,1)

subplot(2,1,1);

plot(t*1000,xa);

xlabel('t毫秒');

ylabel('x1(n)');

title('离散信号');holdon

stem(n*Ts*1000,x);

gtext('Ts=0.25毫秒');holdoff

subplot(2,1,2);plot(w/pi,X);

xlabel('以pi为单位的频率');

ylabel('X1(w)');title('离散时间傅立叶变换');

7.

Dt=0.00005;

t=-0.01:

Dt:

0.01;%t在-0.01到0.01之间;

xa=exp(-1000*abs(0.5*t));%离散时间信号

Ts=0.001;

n=-6:

1:

6;

x=exp(-1000*abs(0.5*n*Ts));%离散时间傅立叶变换

K=500;

k=0:

1:

K;

w=pi*k/K;

X=x*exp(-j*n'*w);

X=real(X);

w=[-fliplr(w),w(2:

K+1)];

X=[fliplr(X),X(2:

K+1)];

subplot(1,1,1)

subplot(2,1,1);

plot(t*1000,xa);

xlabel('t毫秒');

ylabel('x1(n)');

title('离散信号');holdon

stem(n*Ts*1000,x);

gtext('Ts=1毫秒');holdoff

subplot(2,1,2);

plot(w/pi,X);

xlabel('以pi为单位的频率');

ylabel('X1(w)');

title('离散时间傅立叶变换');

 

实验二音乐电子记谱

一、实验目的

利用Matlab工具分析音频文件的时域和频域特性,利用Matlab工具完成对音频文件升调降调的修改,去噪处理,合成新的音频文件。

二、实验内容

全部程序:

1.

[m,fs]=wavread('小星星_中');

L=length(m);

N=L/32;

m1=m(1:

N);

fm1=fft(m1);

f=(0:

N/2-1)*fs/N;

plot(f,abs(fm1(1:

N/2))/max(abs(fm1)))

grid

axis([0,4000,0,1])

2.

clear

clc

[m,fs]=wavread('小星星_低');

%[m,fs]=wavread('小星星_中');

%[m,fs]=wavread('小星星_高');

%sound(m,fs);

L=length(m);

N=L/32;

m1=m(1:

N);

fm1=fft(m1);

f=(0:

N/2-1)*fs/N;

plot(f,abs(fm1(1:

N/2))/max(abs(fm1)))

grid

axis([0,4000,0,1]);

m2=resample(m,1,2);

%m2=resample(m,2,1);

%sound(m2,fs);

 

3.

[do,fs,bits]=wavread('P1');

[re,fs,bits]=wavread('P2');

[mi,fs,bits]=wavread('P3');

[fa,fs,bits]=wavread('P4');

[so,fs,bits]=wavread('P5');

[la,fs,bits]=wavread('P6');

[xi,fs,bits]=wavread('P7');

[do1,fs,bits]=wavread('P8');

y=[do;do;so;so;la;la;so;fa;fa;mi;mi;re;re;do1];

sound(y,fs,bits);

三、实验结论

1.在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。

2.[x,fs,bits]=wavread('d:

\1.wav');%用于读取语音,采样值放在向量x中,fs表示采样频率(Hz),bits表示量化位数。

sound(x,fs,bits);用于对声音的回放。

向量x则代表了一个信号(也即一个复杂的“函数表达式”),就是说可以像处理一个信号表达式一样处理这个声音信号。

3.利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。

再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析。

四、思考题

(1)有什么方法可以将“小星星-中”的音乐升高和降低一个八度,用MATLAB实现你的方法。

MATLAB程序:

[x,fs,bits]=wavread('D:

\音乐电子记谱\小星星_中');

L=length(x);

N=L/32;

x1=x(1:

N);

fx1=fft(x1);

f=(0:

N/2-1)*fs/N;

plot(f,abs(fx1(1:

N/2))/max(abs(fx1)))

grid

axis([0,4000,0,1])

sound(x,fs,bits);

x_a=resample(x,1,2);%升高八度

%sound(x_a,fs,bits);

x_b=resample(x,2,1);%降低八度

%sound(x_b,fs,bits);

(2)利用MATLAB去噪过后的P_n1到P_n8合成乐曲“小星星”,用sound函数播放合成乐音,即可听到钢琴演奏曲。

[do,fs,bits]=wavread('D:

\P1');

[re,fs,bits]=wavread('D:

\P2');

[mi,fs,bits]=wavread('D:

\P3');

[fa,fs,bits]=wavread('D:

\P4');

[so,fs,bits]=wavread('D:

\P5');

[la,fs,bits]=wavread('D:

\P6');

[xi,fs,bits]=wavread('D:

\P7');

[do1,fs,bits]=wavread('D:

\P8');

y=[do;do;so;so;la;la;so;fa;fa;mi;mi;re;re;do];

sound(y,fs,bits)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1