数字信号课程设计报告书文档格式.docx

上传人:b****3 文档编号:7657779 上传时间:2023-05-08 格式:DOCX 页数:32 大小:1.67MB
下载 相关 举报
数字信号课程设计报告书文档格式.docx_第1页
第1页 / 共32页
数字信号课程设计报告书文档格式.docx_第2页
第2页 / 共32页
数字信号课程设计报告书文档格式.docx_第3页
第3页 / 共32页
数字信号课程设计报告书文档格式.docx_第4页
第4页 / 共32页
数字信号课程设计报告书文档格式.docx_第5页
第5页 / 共32页
数字信号课程设计报告书文档格式.docx_第6页
第6页 / 共32页
数字信号课程设计报告书文档格式.docx_第7页
第7页 / 共32页
数字信号课程设计报告书文档格式.docx_第8页
第8页 / 共32页
数字信号课程设计报告书文档格式.docx_第9页
第9页 / 共32页
数字信号课程设计报告书文档格式.docx_第10页
第10页 / 共32页
数字信号课程设计报告书文档格式.docx_第11页
第11页 / 共32页
数字信号课程设计报告书文档格式.docx_第12页
第12页 / 共32页
数字信号课程设计报告书文档格式.docx_第13页
第13页 / 共32页
数字信号课程设计报告书文档格式.docx_第14页
第14页 / 共32页
数字信号课程设计报告书文档格式.docx_第15页
第15页 / 共32页
数字信号课程设计报告书文档格式.docx_第16页
第16页 / 共32页
数字信号课程设计报告书文档格式.docx_第17页
第17页 / 共32页
数字信号课程设计报告书文档格式.docx_第18页
第18页 / 共32页
数字信号课程设计报告书文档格式.docx_第19页
第19页 / 共32页
数字信号课程设计报告书文档格式.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字信号课程设计报告书文档格式.docx

《数字信号课程设计报告书文档格式.docx》由会员分享,可在线阅读,更多相关《数字信号课程设计报告书文档格式.docx(32页珍藏版)》请在冰点文库上搜索。

数字信号课程设计报告书文档格式.docx

的时域与频域特性

2)分析已调信号

3)分析系统的单位脉冲响应

4)分析接收信号

的频谱

5)设计带通滤波器从接收信号

中还原出三个已调信号。

三、图像信号相关处理

1)读入一幅彩色图像

2)将彩色图像进行三原色分解,分解出R、G、B分量,并用图像显示出来

3)将彩色图像灰度化,转换为灰度图像并显示

4)对灰度图像用几种典型的边缘检测算子进行边缘检测,显示检测出的边缘。

四、实验图像及代码

1)周期性正弦波

fs=10;

w=2*pi*fs;

t=0:

0.01:

2;

y=sin(w*t);

plot(t,y);

gridon;

axis([02-22]);

title('

正弦信号'

);

矩形信号

0.001:

0.5;

y=square(2*pi*10*t,50);

axis([00.5-1.51.5]);

周期方波信号'

三角波信号

t=-0.3:

0.3;

y=sawtooth(10*pi*t,0.5);

axis([-0.30.3-1.51.5]);

三角波信号'

2)为避免频谱混叠,试确定各信号的采样频率。

采样频率不能过低,必须fs>

fm,即采样频率必须大于最高截止频率的二倍(对采样频率的要求,即采样频率要足够大,采样的值要足够多,才能恢复原信号)。

上题中信号频率为10Hz,则采样频率应该大于或等于20Hz,这样采样离散信号能无失真的恢复到原来的连续信号。

一个频谱在区间(-w,w)以外为零的频带有限信号,可以唯一的由其在区间间隔Ts上的样点值所确定。

当采样频率小于两倍信号(这里指是信号)最大频率时,经过采样就会发生频谱混叠,这使得采样后的信号序列频谱不能真实地反映原信号的频谱。

所以在利用DFT分析连续信号的频谱时,必须注意这一问题。

避免混叠现象的唯一方法是保证采样速率足够高,使频谱交叠现象不致出现。

也就是说,在确定采样频率之前,必须对信号的性质有所了解,一般在采样前,信号通过一个防混叠低通滤波器。

N=200;

T=1;

t=linspace(0,T,N);

x=sin(2*pi*10*t);

dt=t

(2)-t

(1);

f=1/dt;

X=fft(x);

F=X(1:

N/2+1);

f=f*(0:

N/2)/N;

subplot(2,1,1)

plot(t,x)

x=sin(2*pi*10*t)'

xlabel('

t'

ylabel('

Amplitude'

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

subplot(2,1,2)

plot(f,abs(F))

Frequency'

|X(e^{jw})|'

当N取50时则为

对于方波:

对于三角波:

3)所谓频谱泄漏,就是信号频谱中各谱线之间相互影响,使得测量结果偏离实际值,同时在谱线两侧其他频率点上出现一些幅值较小的假谱。

导致频谱泄漏的原因是采样频率和信号频率的不同步,造成周期采样信号的相位在始端和终端不连续。

采样不同步是造成频谱泄漏的根本原因。

当采样同步,窗口宽度等于整数个周期,矩形框的过零点与离散频点正好对齐,就没有泄漏,窗口宽度不是整数个周期,谐波频谱分布不再是一条谱线而是在整个频域内分布,频谱之间相互干扰,出现频谱泄漏。

综上所述,减少采样的同步误差是抑制频谱泄漏的根本措施。

所以截取数据的长度最好是信号周期的整数倍。

泄漏指的是信号频谱中各谱线之间相互影响,使得测量结果偏离实际值,同时在谱线两侧其他频率点上出现一些幅值较小的假谱。

f1=10;

0.1:

100;

fs=100;

T=1/fs;

n=0:

200;

%保证n*T<

t

xt=sin(2*pi*f1*t);

xn=sin(2*pi*f1*n*T);

subplot(2,1,1);

plot(n,xn);

n'

xn'

离散的时域序列'

N=100;

%保证N<

n

wn=boxcar(N);

Wn=[wn'

zeros(1,200-N+1)];

%保证维度一样

Xn=Wn.*xn;

M=128;

%采样点数

Xm=abs(fft(Xn,M)/(M/2));

%M点FFT变换

f=linspace(0,fs,M);

plot(f,Xm);

f(Hz)'

幅度'

加矩形窗处理后的频域函数'

正弦信号a=sin(20*pi*t)

0.999;

subplot(311)

a=sin(20*pi*t);

plot(t,a);

sin20pi*t'

T'

b=fft(a);

subplot(312);

stem(t*1000,abs(b)/1000,'

fill'

Hz'

axis([-105000.5]);

频率特性'

subplot(313)

stem(t*1000,angle(b)/1000,'

axis([0100-0.0040.004])

相频特性'

方波信号a=square(2*pi*t,50)

a=square(2*pi*10*t,50);

subplot(312)

stem(t*100,abs(b)/100,'

axis([05004]);

stem(t*100,angle(b)/100,'

axis([05-0.040.04]);

a=sawtooth(10*pi*t,0.5);

axis([05000.5]);

axis([025-0.040.04]);

整周期阶段现象很明显,非正整周期截取时它的最大数字频率不在0.2~0.4

之间,这与理论值相差是比较大的。

在截取长度不是很长时必须要整周期截取,这样才能保证截断误差不是很大。

clc

omega=pi/4;

ns=0;

nf=64;

n=[ns:

nf];

xn=sin(omega*n);

xk=fft(xn,128);

xn1=n(1:

50);

%分周期序列截取

xk1=fft(xn1,128);

%绘图

k=0:

127;

wk=2*k/128;

subplot(4,1,1);

stem(n,xn,'

.'

(a)整周期截取的正弦周期信号'

grid

subplot(4,1,2);

stem(wk,abs(xk),'

(b)整周期截取128点dft的幅频特性图'

\omega/\pi'

subplot(4,1,3);

stem(0:

length(xn1)-1,xn1,'

(c)非整周期截取周期信号'

subplot(4,1,4);

stem(wk,abs(xk1),'

(d)非整周期截取128点dft的幅频特性图'

基本原理:

汉宁窗时域表达式

,MATLAB实现

在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。

已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。

在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。

也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。

(1)n=51;

window=hanning(n);

[h,w]=freqz(window,1);

subplot(1,2,1)

stem(window);

subplot(1,2,2)

plot(w/pi,20*log(abs(h)/abs(h

(1))));

2)N=100;

99;

Rn=[ones(1,N-1)zeros(1,101-N)];

pn=0.5*[1-cos((2*pi*n)/(N-1))].*Rn;

sn=2*pn.*(cos(pi*n/4)+4*pn.*cos(pi*n/2)+6*pn.*cos(3*pi*n/4));

subplot(211);

stem(n,sn);

µ

÷

Ö

Æ

Ð

Å

º

'

[H,w]=freqz(sn,1,200);

magH=abs(H);

length(w)

length(H)

magHdB=20*log10(magH);

subplot(212);

plot(w/pi,magHdB);

3)a=[1-1.11720.9842-0.40220.2247];

b=[0.2247-0.40220.9842-1.11721];

n=1:

49;

hn=impz(b,a,n);

stem(n,hn,'

k'

'

f'

脉冲响应¨

h(n)'

序号(n)'

单位脉冲响应'

4)a=[1-1.11720.9841-0.40220.2277];

b=[0.2277-0.40220.9841-1.11721];

yn=filter(b,a,sn);

subplot(311);

plot(yn);

[H,w]=freqz(yn,1,200);

X=abs(H);

Y=20*log10(X);

plot(w/pi,Y);

subplot(3,1,3);

plot(w/pi,angle(H));

phi(\omega)'

axis([00.2-33]);

gridon

5)观察y(n)的图像可得

wp1=[0.21,0.28];

ws1=[0.2,0.3];

wp2=[0.43,0.57];

ws2=[0.41,0.6];

wp3=[0.71,0.82];

ws3=[0.69,0.85];

分离信号一

a=[1-1.11720.9841-0.40220.2277];

N=100;

99;

sn=1.*pn.*cos(1*pi*n/4)+2.*pn.*cos(2*pi*n/4)+3.*pn.*cos(3*pi*n/4);

yn=filter(b,a,sn);

wp=[0.21,0.28];

ws=[0.2,0.3];

Rp=1;

As=20;

[n,wc]=cheb1ord(wp,ws,Rp,As);

[bz,az]=cheby1(n,Rp,wc);

x1=filter(bz,az,yn);

subplot(211),plot(x1)

[H,w]=freqz(x1,1,200);

plot(w/pi,20*log10(abs(H)))

信号二

b=[0.2277-0.40220.9841-1.11721];

wp=[0.43,0.57];

ws=[0.41,0.6];

信号二图像'

plot(w/pi,20*log10(abs(H)));

频谱'

信号三

wp=[0.71,0.8];

ws=[0.69,0.85];

MATLAB支持JPEG,BMP,PCX,TIFF,GIF等图像文件格式。

灰度图像:

数据矩阵中的元素值一般都在[0,1]或[0,255]之间,灰度图像根据这些数据利用线性插值来的色图中的颜色种类匹配。

灰度图像一般看起来试衣服黑白图像,但是色彩明暗比二值图像更为丰富、因为每一个像素点的取值在[0,1]或[0,255]之间。

灰度图像读入matlab中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。

RGB图像:

图像中的每一个像素用三个数据来存储,分别指定红、蓝、绿三原色在像素颜色中的比例关系,组成一个三维数组,读入matlab后是一个三维的矩阵。

RGB图像就是采用红蓝绿作为三原色的。

其中R为红色,G为绿色,B为蓝色,这样这个三维矩阵A就可以表示一个彩色矩阵,也就是一整数字图片可以再matlab中读成一个矩阵A。

这个三维矩阵的第一维就是上图中第一层表示红色的数值,第二维为第二层代表绿色的数值,第三维为第三层代表蓝色的数值。

1)clc;

a=imread('

H:

\ww.jpg'

imshow(a),title('

原彩色图像'

2)clc;

subplot(2,2,1),imshow(a),title('

Ô

Ê

É

«

Í

¼

Ï

ñ

ar=a(:

:

1);

ag=a(:

2);

ab=a(:

3);

subplot(2,2,2),imshow(ar),title('

R'

subplot(2,2,3),imshow(ag),title('

G'

subplot(2,2,4),imshow(ab),title('

B'

3)clc;

subplot(2,1,1),imshow(a),title('

b=rgb2gray(a);

subplot(2,1,2),imshow(b),title('

灰度图像'

4)a=imread('

b=rgb2gray(a);

b1=edge(b,'

sobel'

b2=edge(b,'

prewitt'

b3=edge(b,'

roberts'

b4=edge(b,'

log'

b5=edge(b,'

canny'

subplot(3,2,1);

imshow(b);

subplot(3,2,2);

imshow(b1);

Sobel边缘检测'

subplot(3,2,3);

imshow(b2);

Prewitt边缘检测'

subplot(3,2,4);

Roberts边缘检测'

subplot(3,2,5);

LoG边缘检测'

subplot(3,2,6);

Canny边缘检测'

五.心得与体会

通过这一个星期的课程设计与学习,我重温了一遍数字信号处理的基本概念及相关理论,巩固了MATLAB基本使用方法,掌握了MATLAB数字信号处理的基本编程技术,实现了典型离散信号的DFT及数字滤波器的设计与应用。

数字信号处理是一门比较抽象的课程,通过MATLAB语言可以把抽象的理论用简洁直观的图形表示出来。

MATLAB是一个很好的编程平台,我要在今后的学习中继续深入学习,让MATLAB发挥更大的作用,以帮助学习高深知识。

通过此次实验,学会了利用DFT来对周期、非周期信号做频谱分析,采样定理理解更加深刻,通过改变采样间隔,实现混叠泄露现象。

得知采样的重要性,在今后的学习应用中,可以正确采样,不发生混叠泄露,使信号处理正确准确。

学会了窗函数的用法,通过对信号加矩形窗、hanning窗、hamming窗,加深了窗函数的概念理解,并且通过对同一个信号加不同窗的比较,出不同窗的特点。

对时域加窗相乘与频域卷积的比较得到时域结果的正确。

数字信号处理课程设计虽然只有短短的一周,但是它是我们向工程问题靠近的很重要的训练,我体会理论知识必须联系实际,这样才是学习的最佳途径。

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2