当前位置:文档之家› 信号与线性系统课程设计 心电信号分析系统的设计与仿真

信号与线性系统课程设计 心电信号分析系统的设计与仿真

信号与线性系统课程设计       心电信号分析系统的设计与仿真
信号与线性系统课程设计       心电信号分析系统的设计与仿真

信号与线性系统课程设计报告

课题二心电信号分析系统的设计与仿真

班级:通信C114

姓名:胡伟

学号:115665

成绩:

指导教师:

日期:2013.1.5

摘要:

本课题设计了一个简单的心电信号分析系统。直接采用Matlab语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式,对输入的原始心电信号,进行线性插值处理,并通过matlab语言编程设计对其进行时域和频域的波形频谱分析,根据具体设计要求完成系统的程序编写、调试及功能测试。得出一定的结论。

关键字:matlab、心电信号提取、线性插值、滤波、simulink仿真。

本课题的目的

本设计课题主要研究数字心电信号的初步分析方法及滤波器的设计与应用。通过完成本课题的任务,拟主要达到以下几个目的:

1.了解MATLAB软件的特点和使用方法,熟悉基于Simulink的动态建模和仿真的步骤和过程;

2. 了解LabVIEW虚拟仪器软件的特点和使用方法,熟悉采用LabVIEW进行信号分析、系统设计及仿真的方法。

3.了解人体心电信号的时域特征和频谱特征;

4.通过设计具体的滤波器进一步加深对滤波器性能的理解;

5.掌握数字心电信号的分析方法,学会系统设计与软件仿真方法;

6.通过本课题的训练,培养学生运用所学知识分析和解决实际问题的能力。

2 设计任务及技术指标

设计一个简单的心电信号分析系统。其基本功能包括:输入原始心电信号,对其做一定的数字信号处理,进行时域显示、分析及频谱分析。采用Matlab软件(或LabVIEW虚拟仪器软件)设计相关程序。对基于Matlab软件的程序设计,要求分别采用两种方式进行仿真,即直接采用Matlab语言编程的静态系统仿真方式、采用Simulink进行动态建模仿真的方式。根据心电信号的具体特性参数设计系统各功能模块的源程序,进行调试。

1.对原始数字心电信号进行读取,由数字信号数据绘制出其时域波形并加以分析。

2.对数字信号数据做一次线性插值,使其成为均匀数字信号,以便后面的信号分析。

3.根据心电信号的频域特征(自己查阅相关资料),设计相应的滤波器去除噪声。

4.绘制进行信号处理前后的频谱,做频谱分析,得出相关结论。

5.对系统功能进行综合测试,整理数据,撰写设计报告。

3主要设备和软件

1.PC机一台。

2. MATLAB6.5以上版本软件,一套。

4 设计内容以及实验结果与分析

读取文件的function函数

function [t,Xn]=duquexinhao1(w)

fid=fopen(w);

C=textscan(fid,'%8c %f %*f','headerlines',2);

fclose(fid);

a=C{2};

b=C{1};

k=length(b);

for i=1:k

c(i)=strread(b(i,:),'%*s %f','delimiter',':');

end

c=c';

d=[c,a];

t=d(:,1);

保存文件1

function baocun1(t,Xn)

fid = fopen('t.txt','wt');

fprintf(fid,'%g\n',t);

fclose(fid);

fid = fopen('Xn.txt','wt');

fprintf(fid,'%g\n',Xn); fclose(fid);

保存文件2

function baocun2(t1,Xn1)

fid = fopen('t1.txt','wt');

fprintf(fid,'%g\n',t1); fclose(fid);

fid = fopen('Xn1.txt','wt');

fprintf(fid,'%g\n',Xn1); fclose(fid);

插值文件

function [t2,Xn2]=chazhi1(t,Xn)

n=0;

y=0;

t=t.*1000; m=length(t);

for i=1:m

e(i)=round (t(i));

end

for i=1:(length(t)-1)

if(e(i+1)-e(i)>=1)

N=(e(i+1)-e(i))/1;

A=(Xn(i+1)-Xn(i))/N;

for j=1:N

z(y+j,1)=e(i)+(j-1)*1; z(y+j,2)=Xn(i)+(j-1)*A n=n+1;

j=j+1;

end

y=n;

end

i=i+1;

end

z(y+1,2)=Xn(i);

z(y+1,1)=t(i);

t2=t2./1000;

Xn2=z(:,2);

afd_butt文件

function [b,a] = afd_butt(Wp,Ws,Rp,As);

if Wp <= 0

error('Passband edge must be larger than 0')

end

if Ws <= Wp

error('Stopband edge must be larger than Passband edge')

end

if (Rp <= 0) | (As < 0)

error('PB ripple and/or SB attenuation ust be larger than 0')

end

N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/W s)));

fprintf('\n*** Butterworth Filter Order = %2.0f \n',N)

OmegaC = Wp/((10^(Rp/10)-1)^(1/(2*N)));

[b,a]=u_buttap(N,OmegaC);

freqz_m文件

function[db,mag,pha,grd,w]=freqz_m(b,a)

[H,w]=freqz(b,a,1000,'whole');

H=(H(1:1:501));'w=(w(1:501))';

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

grd=grpdelay(b,a,w);

u_buttap文件

function [b,a] = u_buttap(N,Omegac);

% Unnormalized Butterworth Analog Lowpass Filter Prototype

% --------------------------------------------------------% [b,a] = u_buttap(N,Omegac);

% b = numerator polynomial coefficients of Ha(s)

% a = denominator polynomial coefficients of Ha(s)

% N = Order of the Butterworth Filter

% Omegac = Cutoff frequency in radians/sec

%

[z,p,k] = buttap(N);

p = p*Omegac;

k = k*Omegac^N;

B = real(poly(z));

b0 = k;

b = k*B;

a = real(poly(p));

一.提取txt格式心电信号:

fid=fopen('1.txt');

C=textscan(fid,'%8c %f %*f','headerlines',2);

fclose(fid);

a=C{2};

b=C{1};

k=length(b);

for i=1:k

c(i)=strread(b(i,:),'%*s %f','delimiter',':');

end

c=c';

plot(c,a)

二.对原数据进行插值:

tic

[t,Xn]=duquexinhao1('1.txt')

baocun1(t,Xn);

figure(1)

plot(t,Xn)

[t2,Xn2]=chazhi1(t,Xn);

baocun2(t2,Xn2);

figure(2)

plot(t2,Xn2)

toc

012345678910

-1

-0.5

0.5

1

1.5

2

012345678910

-1

-0.5

0.5

1

1.5

2

三.插值前后波形对比: subplot(2,2,1) plot(t,Xn)

title('初始信号时域波形') axis([0 2.5 -1 2]) subplot(2,2,2) fs=1000; N=length(Xn) n=1:N; f1=n*fs/N; Y1=fft(Xn); plot(f1,abs(Y1)) title('初始信号频谱') axis([0 1000 0 200]) subplot(2,2,3) plot(t2,Xn2)

title('插值后信号时域波形')

axis([0 2.5 -1 2]) M=length(Xn2); m=1:M; f2=m*fs/M; Y2=fft(Xn2); subplot(2,2,4) plot(f2,abs(Y2)) title('插值后信号频谱') axis([0 1000 0 200]) tt=[t2,Xn2]

00.51 1.52 2.5-1

1

2

初始信号时域波形

0500

1000

50100

150

200初始信号频谱

0.5

1

1.5

2

2.5

-1

1

2插值后信号时域波形0

5001000

050

100

150

200插值后信号频谱

四 .把 数 据 读 到txt 中:

fid = fopen('1.txt','wt'); fprintf(fid,'%g\n',t); fclose(fid);

fid = fopen('F.txt','wt'); fprintf(fid,'%g\n',Xn2); fclose(fid);

五.模拟低通滤波器:

wp=50*2*pi;ws=99*2*pi;Rp=1;As=40;%设置滤波器参数

[N,wc]=buttord(wp,ws,Rp,As,'s') %计算滤波器阶数N 和3dB 截止频率wc

[B,A]=butter(N,wc,'s') %计算滤波器系数函数分子分母多项式 k=0:511;fk=0:1000/512:1000;wk=2*pi*fk; Hk=freqs(B,A,wk);

plot(fk,20*log10(abs(Hk))); axis([0,200,-40,5]); 结果

N =8

wc =349.7984 B =1.0e+020 *

Columns 1 through 6

0 0 0 0 0 0 Columns 7 through 9 0 0 2.2415 A =1.0e+020 *

Columns 1 through 6

0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Columns 7 through 9

0.0002 0.0328 2.2415

020406080100120140160180200

-40

-35-30-25-20-15-10-505

六.模拟高通滤波器:

wp=0.6*2*pi;ws=0.25*2*pi;Rp=0.1;As=40;

[N,wc]=buttord(wp,ws,Rp,As,'s') [B0,A0]=butter(N,wc,'s'); wph=2*pi*0.25;

[BH,AH]=lp2hp(B0,A0,wph);

[h,w]=freqs(BH,AH); plot(w,20*log10(abs(h))); axis([0,1,-80,5]); 结果N = 8

wc =2.7933

00.10.20.30.40.50.60.70.80.91

-80

-70-60-50-40-30-20-100

七.滤波前后图形对比: fid=fopen('1.txt');

C=textscan(fid,'%8c %f %*f','headerlines',2); fclose(fid); a=C{2}; b=C{1}; k=length(b); for i=1:k

c(i)=strread(b(i,:),'%*s %f','delimiter',':'); end c=c'; figure(1)

subplot(3,1,1); plot(c,a)

wp=0.6*2*pi;ws=0.25*2*pi;Rp=0.1;As=40;T=1; [N,wc]=buttord(wp,ws,Rp,As,'s') [B,A]=butter(N,wc,'s'); [b,a]=impinvar(B,A,T)

[db,mag,pha,w]=freqz_m(b,a); y1=filter(b,a,Xn2); subplot(3,1,2);plot(y1); title('高通滤波后')

wp1=2*pi*50;ws1=2*pi*99;Rp1=0.1;As1=40;T1=1000; OmegaP1=wp1/T1;OmegaS1=ws1/T1;

[cs1,ds1]=afd_butt(OmegaP1,OmegaS1,Rp1,As1);

[b1,a1]=impinvar(cs1,ds1,T)

[db1,mag1,pha1,w1]=freqz_m(b1,a1);

y2=filter(b1,a1,y1);

subplot(3,1,3);plot(y2);

title('低通滤波后')

M=length(Xn2);

m=1:M;

fs=1000;

f2=m*fs/M;

F1=fft(Xn2);

Y1=fft(y1);

Y2=fft(y2)

figure(2)

subplot(3,1,1)

plot(f2,abs(F1))

axis([0,1000,0,200])

title('原始信号频谱_{9.997}')

subplot(3,1,2)

plot(f2,abs(Y1))

axis([0,1000,0,200])

title('高通滤波后信号频谱_{9.997}')

subplot(3,1,3)

plot(f2,abs(Y2))

axis([0,1000,0,200])

title('低通滤波后信号频谱_{9.997}')

1

2

3

4

5

6

7

8

9

10

-1012010002000300040005000600070008000900010000

-202高通滤波后

010002000300040005000600070008000900010000

-202低通滤波后

01002003004005006007008009001000

100200原始信号频谱9.997

01002003004005006007008009001000

100200高通滤波后信号频谱9.997

01002003004005006007008009001000

100200低通滤波后信号频谱9.997

八.系统函数的级联、冲击响应、幅度响应、相位响应: figure(3) H1=impz(b,a); H2=impz(b1,a1);

Hn=conv(H1,H2); %将系统一的系统函数与系统二的函数相级联 subplot(3,1,1);

plot(H1);title('高通系统函数冲击响应曲线'); %系统函数的冲击

响应曲线

subplot(3,1,2);

plot(H2);title('低通系统函数冲击响应曲线');

subplot(3,1,3);

plot(Hn);title('级联后系统函数冲击响应曲线');

figure(4)

fs=1000;

[H,f]=freqz(B,A,256,fs); %系统一的幅频特性曲线

mag=abs(H); %幅度响应

ph=angle(H); %相位响应

ph=ph*180/pi;

subplot(2,2,1),plot(f,mag);grid %h1的幅度响应

title('h1幅度响应')

%xlabel('frequency(Hz)');ylabel('magnitude');

subplot(2,2,2);plot(f,ph);grid %h1的相位响应

title('h1相位响应 ')

fs=1000;

[H,f]=freqz(BH,AH,256,fs);

mag=abs(H);

ph=angle(H);

ph=ph*180/pi;

subplot(2,2,3),plot(f,mag);grid

title('h2幅度响应')

subplot(2,2,4);plot(f,ph);grid

title('h2相位响应')

figure(5)

zr=roots(B) %系统一的零点图

pk=roots(A) %系统一的极点图

zplane(B,A); %zplane 函数画出系统一的零极点图 figure(6)

zr1=roots(cs1) %系统二的零点图 pk1=roots(ds1) %系统二的极点图

zplane(cs1,ds1); %zplane 函数画出系统一的零极点图

2

4

6

8

10

12

14

16

18

-0.500.5

1高通系统函数冲击响应曲线

020406080100120140160180

-0.20

0.2低通系统函数冲击响应曲线

020406080100120140160180200

-0.2

0.2级联后系统函数冲击响应曲线

020*******

2468h1幅度响应

0200400

600

-150

-100-50

h1相位响应

200

400

600

05101520h2幅度响应

200400600

050100150200h2相位响应

-4-3-2

-1

012

-3

-2

-1

1

2

3

Real Part

I m a g i n a r y P a r t

-1

-0.5

00.5

1

-1

-0.8-0.6

-0.4-0.200.20.4

0.60.8110

Real Part

I m a g i n a r y P a r t

九.Simulink 仿真以及仿真结果图

高通滤波器:

低通滤波器:

带阻滤波器:

原信号波形:

滤波后信号波形:

滤波后

滤波前

5设计方案论证

1.心电信号读取设计方案论证与选择

美国麻省理工学院提供的MIT-BIH 数据库是一个权威性的国际心电图检测标准库,近年来应用广泛,为我国的医学工程界所重视。MIT-BIH 数据库共有48个病例,每个病例数据长30min ,总计约有116000多个心拍,包含有正常心拍和各种异常心拍,内容丰富完整。

为了读取简单方便,采用其txt 格式的数据文件作为我们的原心电信号数据。利用Matlab 提供的文件textread 或textscan 函数,读取txt 数据文件中的信号,并且还原实际波形。(或者利用labVIEW 提供的文件I/O 函数,读取txt 数据文件中的信号,并且还原实际波形。)由于不熟悉Labview 提供的文件I/O 函数,所以采用老师提供的Matlab 提供的文件textscan 。 2.线性插值的设计方案与选择

由于原始心电信号数据不是通过等间隔采样得到的,也就是说原始的心电数据并不是均匀的,而用Matlab 中提供的数字滤波器处理数据时,要求数据是等间隔的。因此设计的系统首先应对原始心电信号做线性插值处理,使其变为等间隔的数字信号,否则直接处理后会出现偏差,根据心电信号的特点, 把时间分隔成0.001s 。添加的幅值点采用一次线性插值。对二维数据进行插值,相连幅值间数据的插值根据时间进行,运算公式如下:

1

--=?i i t t t ,001.0/t N ?=,1--=?i i A A A ,001.01+=-j j t t ,N A A A j j /1?+=-

其中i t 是第i 个数据时间点,A i 是与之对应的数据,N 是两数据之间需要的插值数

A ?是需要插值的两点数据差,

,,,,,,,1321321-==N j arraysize i 1111----==i j i j A A t t ,,1=j i ,时数组j j A t ,依次排列,即得到了插值后等间隔的新数据。虽然Labview 提供的插值法有很多,但是由于自身对Labview 不熟悉,所以采用教师提供的线性插值法(即上述所列公式)。

3.滤波器的设计方案论证与选择

一般正常人的心电信号频率在0.7~100HZ 范围内,幅度为V 10μ(胎儿)~5mV (成人)。人体心电信号微弱,信噪比小,因此,在采集心电信号时,易受到仪器、人体活动等因素的影响,而且所采集的心电信号常伴有干扰。采集心电数据时,由于人的说话呼吸,常常会混有约为0.1Hz 到0.25Hz 频段的干扰,对于这些低频干扰,可以让信号通过一个高频滤波器,低截止频率设置为0.25,来滤除低频信号,对于高频信号干扰,可以让信号再通过一个低频滤波器,其中截止频率设置为99Hz 。所以我选择butterworth 滤波器。

6总结

7参考文献

[1] 北京迪阳正泰科技发展公司.综合通信实验系统——信号与系统指导书(第二版). 2006,6

[2] 丁玉美.数字信号处理(第二版).西安电子科技大学出版社,2001

[3] 吴大正. 信号与线性系统分析(第四版). 高等教育出版社,2005,8

[4] 谢嘉奎. 电子线路--线性部分(第四版). 高等教育出版社,2003,2

[5] 陈后金. 信号分析与处理实验. 高等教育出版社,2006,8

[6]陈锡辉,张银鸿编著.LabVIEW 8.20 程序设计从入门到精通[M].北京:清华大学出版社,2007.

8 附录

1.心电信号的读取

txt格式的数据文件内容及格式如图1-1所示(以100.txt为例)。

图1-1txt格式的心电数据文件

其中文件的第一列为采样时间,第二列是在以MLII这种导联方式所得到的采样数据,第三列是以V5这种导联方式所得到的采样数据,全文件记录了约为10s的心电数据,3600个采样数据,每一行数据之间用Tab符分隔。

由于数据文件中后两列数据是对同一种心电信号进行不同的导联方式所得到的采样数据,所以可以只采用其中的一种采样数据,摒弃另外一种,即可完成对此心电信号的分析。全部的心电文件记录时间约为10s,共计12个左右周期的心电信号。

实际设计心电信号数据文件时应注意:

2.心电信号的线性插值处理

根据上文中提到的插值公式,以此为原理,设计Matlab 程序,对心电信号数据做线性插值处理。插值完以后的数据应该是时间均匀的、以0.001秒为间隔的。

此步骤的实现主要是基于Matlab 中的数组操作函数来实现,建议一定首先熟悉并掌握Matlab 中的所有数组操作函数的作用和操作方法。

其中一种插值方法的思路是:将第一步中读取的心电信号数据的时间数据和幅值数据分别存放在一个一维数组中。然后利用for 循环结构把所有数据依次读取进来。判断时间数据数组中前后两个相邻的数据间隔是否为0.001s ,如果是则判断下一对相邻两个数据;如果间隔大于0.001s 则进行一维插值处理。

注意对时间数据做插值的同时一定不要忘记对幅值数据同样做插值处理,时间数据和幅值数据一定是相互对应的。

3. 滤波器设计

3.1 模拟滤波器设计原理 (1)模拟巴特沃思滤波器原理

巴特沃斯滤波器具有单调下降的幅频特性:在小于截止频率c Ω的范围内,具有最平幅度的响应,而在c Ω>Ω后,幅频响应迅速下降。

巴特沃思低通滤波器幅度平方函数为:

221()1()a N

c

H j Ω=

Ω+Ω (3-1)

式中N 为滤波器阶数,c Ω为3dB 截止角频率。将幅度平方函数写成s 的函数形式:

21

()()

1()

a a N

c

H s H s s j -=+Ω (3-2) 该幅度平方函数有2N 个等间隔分布在半径为c Ω的圆上的极点

121()

22 k j N

k c s e

π++=Ω,0,1,...21k N =- 为了形成稳定的滤波器,取左半平面的N 个

极点构成()a H s ,即:

10

()()N N a c

k

k H s s s -==Ω

-∏ (3-3)

为使设计统一,将频率归一化,得到归一化极点121()

22k j N

k p e π++=,相应的归一

化系统函数为:

10

()1

()N a k

k H p p p -==-∏ (3-4)

信号与系统课程设计报告材料

课程设计报告 课程名称信号与系统课程设计指导教师 设计起止日期 学院信息与通信工程 专业电子信息工程 学生 班级/学号 成绩 指导老师签字

目录 1、课程设计目的 (1) 2、课程设计要求 (1) 3、课程设计任务 (1) 4、课程设计容 (1) 5、总结 (11) 参考文献 (12) 附录 (12)

1、课程设计目的 “信号与系统”是一门重要的专业基础课,MATLAB作为信号处理强有力的计算和分析工具是电子信息工程技术人员常用的重要工具之一。本课程设计基于MATLAB完成信号与系统综合设计实验,以提高学生的综合应用知识能力为目标,是“信号与系统”课程在实践教学环节上的必要补充。通过课设综合设计实验,激发学生理论课程学习兴趣,提高分析问题和解决问题的能力。 2、课程设计要求 (1)运用MATLAB编程得到简单信号、简单信号运算、复杂信号的频域响应图; (2)通过对线性时不变系统的输入、输出信号的时域和频域的分析,了解线性时不变系统的特性,同时加深对信号频谱的理解。 3、课程设计任务 (1)根据设计题目的要求,熟悉相关容的理论基础,理清程序设计的措施和步骤; (2)根据设计题目的要求,提出各目标的实施思路、方法和步骤; (3)根据相关步骤完成MATLAB程序设计,所编程序应能完整实现设计题目的要求; (4)调试程序,分析相关理论; (5)编写设计报告。 4、课程设计容 (一)基本部分 (1)信号的时频分析 任意给定单频周期信号的振幅、频率和初相,要求准确计算出其幅度谱,并准确画出时域和频域波形,正确显示时间和频率。 设计思路: 首先给出横坐标,即时间,根据设定的信号的振幅、频率和初相,写出时域波形的表达式;然后对时域波形信号进行傅里叶变化,得到频域波形;最后使用plot函数绘制各个响应图。 源程序: clc; clear; close all; Fs =128; % 采样频率 T = 1/Fs; % 采样周期 N = 600; % 采样点数 t = (0:N-1)*T; % 时间,单位:S x=2*cos(5*2*pi*t);

课题二基于MATLAB平台的心电信号分析系统设计与仿真

课题二基于MATLABDE的心电信号分析系统的设计与仿真 一、本课题的目的 本设计课题主要研究数字心电信号的初步分析及滤波器的应用。通过完成本课题的设计,拟主要达到以下几个目的: (1)了解MATLAB软件的特点和使用方法,熟悉基于Simulink的动态建模和仿真的步骤和过程; (2)了解人体心电信号的时域特征和频谱特征; (3)进一步了解数字信号的分析方法; (4)通过应用具体的滤波器进一步加深对滤波器理解; (5)通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。 二、课题任务 设计一个简单的心电信号分析系统。对输入的原始心电信号,进行一定的数字信号处理,进行频谱分析。采用Matlab语言设计,要求分别采用两种方式进行仿真,即直接采用Matlab 语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式。根据具体设计要求完成系统的程序编写、调试及功能测试。 (1)对原始数字心电信号进行读取,由数字信号数据绘制出其时域波形。 (2)对数字信号数据做一次线性插值,使其成为均匀数字信号,以便后面的信号分析。 (3)根据心电信号的频域特征(自己查阅相关资料),设计相应的低通和高通滤波器。 (4)编程绘制实现信号处理前后的频谱,做频谱分析,得出相关结论。 (5)对系统进行综合测试,整理数据,撰写设计报告。 三、主要设备和软件 (1)PC机一台。 (2) MATLAB6.5以上版本软件,一套。 四、设计内容、步骤和要求 4.1必做部分 4.1.1利用Matlab对MIT-BIH数据库提供的数字心电信号进行读取,并还原实际波形 美国麻省理工学院提供的MIT-BIH数据库是一个权威性的国际心电图检测标准库,近年来应用广泛,为我国的医学工程界所重视。MIT-BIH数据库共有48个病例,每个病例数据长30min,总计约有116000多个心拍,包含有正常心拍和各种异常心拍,内容丰富完整。

信号分析课程设计报告书

信号分析课程设计 信号系统的时域分析 编程实现的卷积积分或卷积和 一、课程设计题目: 基于 MATLAB 的连续时间LTI 系统的时域分析 二、基本要求: ① 掌握连续时不变信号处理的基本概念、基本理论和基本方法; ② 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法; ③ 学会用 MATLAB 对信号进行分析和处理; ④ 编程实现卷积积分或卷积和,零输入响应,零状态响应; ⑤ 撰写课程设计论文,用信号处理基本理论分析结果。 三、设计方法与步骤: 一般的连续时间系统分析有以下几个步骤: ①求解系统的零输入响应; ②求解系统的零状态响应; ③求解系统的全响应; ④分析系统的卷积;⑤画出它们的图形. 下面以具体的微分方程为例说明利用MATLAB 软件分析系统的具体方法. 1.连续时间系统的零输入响应 描述n 阶线性时不变(LTI )连续系统的微分方程为: 已知y 及各阶导数的初始值为y(0),y (1)(0),… y (n-1)(0), 求系统的零输入响应。 建模 当LIT 系统的输入为零时,其零输入响应为微分方程的其次解(即令微分方程的等号右端为零),其形式为(设特征根均为单根) 其中p 1,p 2,…,p n 是特征方程a 1λ n +a 2λn-1+…+a n λ+a n =0的根,它们可以 用root(a)语句求得。各系数 由y 及其各阶导数的初始值来确定。对此有 1121111n n m n n m m n n m d y d y dy d u du a a a a y b b b u dt dt dt dt dt -++-++?????++=+????++1212()n p t p t p t n y t C e C e C e =++????+120n C C C y ++????+=11220 n n p C p C p C Dy ++????+=

数字信号处理课程设计报告

《数字信号处理》课程设计报告 设计题目: IIR滤波器的设计 专业: 班级: 姓名: 学号: 指导教师: 2010年月日

1、设计目的 1、掌握IIR 滤波器的参数选择及设计方法; 2、掌握IIR 滤波器的应用方法及应用效果; 3、提高Matlab 下的程序设计能力及综合应用能力。 4、了解语音信号的特点。 2、设计任务 1、学习并掌握课程设计实验平台的使用,了解实验平台的程序设计方法; 2、录制并观察一段语音信号的波形及频谱,确定滤波器的技术指标; 3、根据指标设计一个IIR 滤波器,得到该滤波器的系统响应和差分方程,并根据差分方程将所设计的滤波器应用于实验平台,编写相关的Matlab 程序; 4、使用实验平台处理语音信号,记录结果并进行分析。 3、设计内容 3.1设计步骤 1、学习使用实验平台,参见附录1。 2、使用录音机录制一段语音,保存为wav 格式,录音参数为:采样频率8000Hz、16bit、单声道、PCM 编码,如图1 所示。 图1 录音格式设置 在实验平台上打开此录音文件,观察并记录其波形及频谱(可以选择一段较为稳定的语音波形进行记录)。 3、根据信号的频谱确定滤波器的参数:通带截止频率Fp、通带衰减Rp、阻带截止频率Fs、阻带衰减Rs。 4、根据技术指标使用matlab 设计IIR 滤波器,得到系统函数及差分方程,并记录得到系统函数及差分方程,并记录其幅频响应图形和相频响应图形。要求设计 第 1页出的滤波器的阶数小于7,如果不能达到要求,需要调整技术指标。 5、记录滤波器的幅频响应和系统函数。在matlab 中,系统函数的表示公式为:

因此,必须记录系数向量a 和b。系数向量a 和b 的可以在Matlab 的工作空间(WorkSpace)中查看。 6、根据滤波器的系统函数推导出滤波器的差分方程。 7、将设计的滤波器应用到实验平台上。根据设计的滤波器的差分方程在实验平台下编写信号处理程序。根据运行结果记录处理前后的幅频响应的变化情况,并试听处理前后声音的变化,将结果记录,写入设计报告。 3.2实验程序 (1)Rs=40; Fs=1400; Rp=0.7; Fp=450; fs=8000; Wp=2*pi*Fp;Ws=2*pi*Fs; [N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); [b1,a1]=butter(N,Wn,'s'); [b,a]=bilinear(b1,a1,fs); [H,W]=freqz(b,a); figure; subplot(2,1,1);plot(W*fs/(2*pi),abs(H));grid on;title('频率响应'); xlabel('频率');ylabel('幅值');、 subplot(2,1,2); plot(W,angle(H));grid on;title('频率响应'); xlabel('相位(rad)');ylabel('相频特性'); 3.3实验结果(如图): N =5 Wn=6.2987e+003 第 2页

信号与系统课程设计报告

信号与系统课程设计报告 实验题目:信号的运算与处理 内容简介: 设计一个信号,对其进行信号运算和处理,利用Matlab仿真。 课设方式: 利用电子技术、电路理论和信号与系统的知识学习验证信号的运算和处理,如延时、相加、微分、抽样等。自已设计信号及运算方式,并利用Matlab仿真。 分析计算结果。 课程设计要求: 独立完成; 完成信号设计(任意信号均可)及其某种运算(任意运算均可,也可多做几种,或做组合运算)的验证; 学会利用Matlab仿真;提交课程设计报告。 例如: 设计一个信号为f(t)=3sin2t 对其做微分运算得到f/(t) , 用MATLAB 编程实现计算过程,画出f(t)和f/(t)

本次课程设计本人选的信号运算是: 设计一个信号为y1=y(x)=sin2x,对其作微分运算得到dy1,用MATLAB对其实现运算过程,后画出y1,dy1,y1+dy1的图像 实验步骤(操作过程) 1、 首先打开MATLAB软件,在其命令窗口直接输入以下程序,对y(x)进 行微分运算。得到dy1 clear >> syms x y1; >> y1=sin(2*x); >> dy1=diff(y1,'x') dy1 =2*cos(2*x) 运算过程如下图所示: 2、 接着便是对其进行验证,点击fire,新建一个文件,输入以下程序(绘制出y1=sin2x, dy1=2cos2x, 以及y1+ dy1=sin2x+2cos2x。的波形)

3、保存文件,后缀名为.m,随后按F5执行输出输出图形。实验结果如下图所示 、

结果分析 如图所示绿色波形为y1=sin2x,蓝色为dy1=2cos2x,红色波形为y1+dy1。仿真结果与运算结果一致。 实验心得体会(调试过程) 总的来说,这次课程设计难度并不是太高,而我选取的正玄信号也是较为简单常用的一种函数,对其进行微分运算之后,得到了余弦函数,其仿真结果波形也如上所示,与预期一致。在设计过程中,还是出现了几个小问题的,一个是变量的定义,之前没有定义x,直接取范围结果出错了,还有一个是注意各种函数的调用以及运算格式,还是希望能在之后再接再厉,掌握好matlab软件!(附上调试过程图片) 左边为文件、历史窗口,底下是命令窗口,最右下角为实验仿真波形,中间为运算程序,绘图画图程序。

ECG信号分析与处理系统设计

***************** 实践教学 ******************* 某某理工大学 计算机与通信学院 2015年春季学期 信号处理课程设计 题目:ECG信号分析与处理系统设计 专业班级:通信工程 姓名: 学号: 指导教师: 成绩:

摘要 系统的研究心电信号处理对疾病的早期预测及家庭医疗保健具有十分重要的意义,一直是生物医学工程领域的研究热点。心血管疾病是人类生命的最主要威胁之一,而心电(Electrocardiogram),ECG信号是诊断心血管疾病的主要依据,心电信号是心脏电生理活动在体表的表现,提供了心脏功能等生理状况的有重要价值的临床医学信息,是临床心脏病诊断的基础。因此,设计心电信号处理系统具有重要意义。本论文综合运用数字信号处理的理论知识对心电信号进行分析与处理,实现ECG信号的频谱分析,基线漂移检测等,设计滤波器实现心电信号的滤波,滤去高频和低频干扰,实现ECG信号的增强。同时使用陷波器对50Hz的工频干扰进一步滤除,得到比较纯净的心电信号。 关键词: 心电信号,工频干扰,基线漂移

目录 摘要····································I 一、前言 (1) 二、心电信号 (2) 2.1 原始心电信号分析 (2) 2.2 心电信号中的噪声 (3) 2.3 系统总体设计框图 (4) 三、设计原理及方法 (5) 3.1 数字滤波器简介 (5) 3.2 IIR滤波器的设计原理 (5) 3.3 IIR滤波器的设计 (5) 3.3.1 IIR数字低通滤波器设计过程 (5) 3.3.2 IIR数字带通滤波器设计过程 (9) 3.4 FIR滤波器 (10) 3.4.1 FIR滤波器的设计 (11) 3.4.2 FIR数字低通滤波器设计过程 (11) 3.5 陷波器 (13) 3.5.1陷波器的基本原理及作用 (13) 3.5.2双T法设计陷波器 (13) 四、MATLAB简述 (15) 五、总结 (16) 参考文献 (17) 附录 (18)

数字信号处理课程设计报告 杨俊

课程设计报告 课程名称数字信号处理 课题名称数字滤波器设计及在语音信号分析中的应用 专业通信工程 班级1281 学号201213120101 姓名杨俊 指导教师彭祯韩宁 2014年12月5日

湖南工程学院 课程设计任务书 课程名称数字信号处理 课题数字滤波器设计 及在语音信号分析中的应用专业班级通信工程1281班 学生姓名杨俊 学号201213120101 指导老师彭祯韩宁 审批 任务书下达日期2014 年12月5日 任务完成日期2014 年12月13日

《数字信号处理》课程设计任务书 一、课程设计的性质与目的 《数字信号处理》课程是通信专业的一门重要专业基础课,是信息的数字化处理、存储和应用的基础。通过该课程的课程设计实践,使学生对信号与信息的采集、处理、传输、显示、存储、分析和应用等有一个系统的掌握和理解;巩固和运用在《数字信号处理》课程中所学的理论知识和实验技能,掌握数字信号处理的基础理论和处理方法,提高分析和解决信号与信息处理相关问题的能力,为以后的工作和学习打下基础。 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。 二、课程设计题目 题目1:数字滤波器设计及在语音信号分析中的应用。 1、设计步骤: (1)语音信号采集 录制一段课程设计学生的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。 然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。 (2)语音信号分析 使用MATLAB绘出采样后的语音信号的时域波形和频谱图。根据频谱图求出其带宽,并说明语音信号的采样频率不能低于多少赫兹。 (3)含噪语音信号合成 在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:①白

数字信号处理课程设计报告

抽样定理的应用 摘要 抽样定理表示为若频带宽度有限的,要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。 语音信号处理是研究用数字信号处理技术和语音学知识对语音 信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用 软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求通过利用matlab对模拟信号和语音信号进行抽样,通过傅里叶变换转换到频域,观察波形并进行分析。 关键词:抽样Matlab

目录 一、设计目的: (2) 二、设计原理: (2) 1、抽样定理 (2) 2、MATLAB简介 (2) 3、语音信号 (3) 4、Stem函数绘图 (3) 三、设计内容: (4) 1、已知g1(t)=cos(6πt),g2(t)=cos(14πt),g3(t)=cos(26πt),以抽样频率 fsam=10Hz对上述三个信号进行抽样。在同一张图上画出g1(t),g2(t),g3(t)及其抽样点,对所得结果进行讨论。 (4) 2、选取三段不同的语音信号,并选取适合的同一抽样频率对其进 行抽样,画出抽样前后的图形,并进行比较,播放抽样前后的语音。 (6) 3、选取合适的点数,对抽样后的三段语音信号分别做DFT,画图 并比较。 (10) 四、总结 (12) 五、参考文献 (13)

去除干扰蜂鸣音 信号与系统课程设计

一、课程设计题目 去除干扰蜂鸣音 1.目的:掌握信号时频域分析方法,正确理解采样定理,准确理解滤波器的概念。 2.内容:提供一个包含某人说话语音片段的声音文件,但该语音信号被一个包含有几个谐波分量的蜂鸣信号干扰了。 用Matlab 的wavread 命令读取该声音文件。注意,该命令可以同时得到声音文件的采样率和采样位宽,请查阅Matlab 的帮助文件。 (1) 用快速傅立叶变换(FFT )计算并画出声音信号的频谱,列写出蜂鸣信号的谐波频率。 (2) 思考如何将这些蜂鸣音去除?将去除了蜂鸣音的语音片段播放出来,仔细聆听并写下语音片 段中人物所说的话。注意:由于只能播放实信号,因此记得提取信号的实部。 Matlab 命令:wavread, wavplay, fft, fftshift, fir1, filter, plot, figure. 二、设计思路 用waveread()函数读取音频和其采样率和采样位宽,对读取的音频信号使用fft()函数进行快速傅立叶变换并绘出得到的频谱。观察频谱分析噪声(蜂鸣信号)的谐波频率分布,选择合适的滤波模式将噪声信号的谐波滤去,便可以得到去除噪声后的人声。 设计滤波器的频域特性便成了除去噪声并留下原声的关键,我们注意到所学的采样定理以及一维sinc 函数(辛格函数)x x x Sinc ππ) sin()(=,然而汉宁窗可以看作是3个矩形时间窗的频谱之和,或者 说是 3个)(x Sinc 型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T ,从而使旁瓣互相抵消,消去高频干扰和漏能。它适用于非周期性的连续信号。利用它的选择特性使用fir1()建立一个汉宁窗函数,并用filter()函数进行滤波,去除噪声部分。最后用play()函数播放音频检查效果。 三、设计过程 1.音频的读取和分析 先将原始音频文件读入, [audio0, Fs, nbits] = wavread('C:\Users\Administrator\Desktop\signal\buzz.wav');%按路径读取音频存入audio0变量,并用Fs 变量记录采样率,nbits 变量记录采样位宽。 其中, Fs=11025 #采样率为11025Hz nbits=32 #采样带为32 p0=audioplayer(audio0,Fs);%将audio0载入音频播放器 play(p0);%并进行播放 subplot(2,1,1);%分屏绘图 plot(audio0);%绘制原始音频时域图,如下图所示 title('时域');%标注题目

课题三基于LABVIEW的心电信号分析系统设计与仿真报告

课题一心电信号分析系统的设计 一、本课题的目的 本设计课题主要研究数字心电信号的初步分析方法及滤波器的应用。通过完成本课题的设计,拟主要达到以下几个目的: (1)了解基于LabVIEW的虚拟仪器的特点和使用方法,熟悉采用LabVIEW进行仿真的方法。 (2)了解人体心电信号的时域特征和频谱特征。 (3)进一步了解数字信号的分析方法; (4)通过应用具体的滤波器进一步加深对滤波器的理解。 (5)通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。 二、课题任务 利用labVIEW设计一个基于虚拟仪器的简单的心电信号分析系统。对输入的原始心电信号,进行一定的数字信号处理,进行频谱分析。根据具体设计要求完成系统的程序编写、调试及功能测试。 (1)对原始数字心电信号进行读取,由数字信号数据绘制出其时域波形。 (2)对数字信号数据做一次线性插值,使其成为均匀数字信号,以便后面的信号分析。 (3)根据心电信号的频域特征(自己查阅相关资料),设计相应的低通和带通滤波器。 (4)编程绘制实现信号处理前后的频谱,做频谱分析,得出相关结论。 (5)对系统进行综合测试,整理数据,撰写设计报告。 三、主要设备和软件 (1)PC机一台。 (2)LabVIEW软件一套,要求最低版本8.20。 四、设计内容、步骤和要求 必做部分: 1. 利用labVIEW读取MIT-BIH数据库提供的数字心电信号,并还原实际波形 美国麻省理工学院提供的MIT-BIH数据库是一个权威性的国际心电图检测标准库,近年来应用广泛,为我国的医学工程界所重视。MIT-BIH数据库共有48个病例,每个病例数据长30min,总计约有116000多个心拍,包含有正常心拍和各种异常心拍,内容丰富完整。 为了读取简单方便,采用其txt格式的数据文件作为我们的原心电信号数据。利用labVIEW提供的文件I/O函数,读取txt数据文件中的信号,并且还原实际波形。

信号发生器课程设计报告

目录 一、课题名称 (2) 二、内容摘要 (2) 三、设计目的 (2) 四、设计内容及要求 (2) 五、系统方案设计 (3) 六、电路设计及原理分析 (4) 七、电路仿真结果 (7) 八、硬件设计及焊接测试 (8) 九、故障的原因分析及解决方案 (11) 十、课程设计总结及心得体会 (12)

一、课题名称:函数信号发生器的设计 二、内容摘要: 函数信号发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形信号,如正弦波,三角波,方波等,因而此次课程设计旨在运用模拟电子技术知识来制作一个能同时输出正弦波、方波、三角波的信号发生器。 三、设计目的: 1、进一步掌握模拟电子技术知识的理论知识,培养工程设计能力和综合分析能力、解决问题的能力。 2、基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力。 3、学会运用Multisim仿真软件对所做出来的理论设计进行仿真测试,并能进一步解决出现的基本问题,不断完善设计。 4、掌握常用元器件的识别和测试,熟悉万用表等常用仪表,了解电路调试的基本方法,提高实际电路的分析操作能力。 5、在仿真结果的基础上,实现实际电路。 四、设计内容及要求: 1、要求完成原理设计并通过Multisim软件仿真部分 (1)RC桥式正弦波产生电路,频率分别为300Hz、1KHz、10KHz、500KHz,输出幅值300mV~5V可调、负载1KΩ。 (2)占空比可调的矩形波电路,频率3KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (3)占空比可调的三角波电路,频率1KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (4)多用信号源产生电路,分别产生正弦波、方波、三角波,频率范围

数字信号处理课设共18页文档

数字信号处理课程设计 姓名:刘倩 学号:201014407 专业:信息与计算科学 实验一:常见离散信号产生和实现 一、实验目的: 1、加深对常用离散信号的理解; 2、掌握matlab 中一些基本函数的建立方法。 二、实验原理: 1.单位抽样序列 在MATLAB 中可以利用zeros()函数实现。 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: 2.单位阶越序列 在MATLAB 中可以利用ones()函数实现。 3.正弦序列 在MATLAB 中 4.复指数序列 在MATLAB 中 5.指数序列 在MATLAB 中

实验内容:由周期为10的正弦函数生成周期为20的余弦函数。 实验代码: n=0:30; y=sin(0.2*pi*n+pi/2); y1=sin(0.1*pi*n+pi/2); subplot(121) stem(n,y); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); subplot(122) stem(n,y1); xlabel ('时间序列n');ylabel('振幅'); title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); 实验结果: 实验二:离散系统的时域分析 实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。实验原理:离散系统 其输入、输出关系可用以下差分方程描述: 输入信号分解为冲激信号, 记系统单位冲激响应 则系统响应为如下的卷积计算式:

当N k d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。 在MATLAB 中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。 实验内容:用MATLAB 计算全解 当n>=0时,求用系数差分方程y[n]+y[n-1]-6y[n-2]=x[n]描述的一个离散时间系统对阶跃输入x[n]=8μ[n]的全解。 实验代码: n=0:7; >> [y,sf]=filter(1,[1 1 -6],8*ones(1,8),[-7 6]); >> y1(n+1)=-1.8*(-3).^n+4.8*(2).^n-2; >> subplot(121) >> stem(n,y); >> title('由fliter 函数计算结果'); >> subplot(122) >> stem(n,y1); >> title('准确结果'); 实验结果: 结果分析:有图可得由fliter 函数得出的结果与计算出的准确结果完全一致。 实验三FFT 算法的应用

信号与系统课程设计

南通大学电子信息学院信号与系统课程设计报告 班级: 姓名: 学号: 指导老师: 设计时间: 2014—2015学年第一学期

一、连续信号的时域分析 二、 1. 信号的产生 (1)阶跃函数 function [t,y1]=jieyue(t1,t2,t0) dt=0.01; ttt=t1:dt:t0-dt; tt=t0:dt:t2; t=t1:dt:t2; n=length(ttt); nn=length(tt); u=zeros(1,n); uu=ones(1,nn); y1=[u,uu]; return 冲激函数 function [t,y2]=chongji(t1,t2,t0) dt=0.01; t=t1:dt:t2; n=length(t); y2(1:n)=0; y2(1,(t0-t1)/dt+1)=1/dt; (2)调用上述函数产生信号)2-t ε(,)(4-t δ,-t e )(t ε,-6s ≤t ≤6s,并画出波形。 Command Window subplot(3,1,1); [t1,y1]=jieyue(-6,6,2);

stairs(t1,y1); axis([-6 6 0 1.5]); subplot(3,1,2); [t2,y2]=chongji(-6,6,4);plot(t2,y2); subplot(3,1,3); [t3,y3]=jieyue(-6,6,0); y3=exp(-(t3)).*y3;plot(t3,y3); 波形如下图所示: (3)根据f(t)画出f(2t)和f(1-0.5t)的波形 t=-3:0.01:3; y=tripuls(t,4,0.6); subplot(3,1,1); plot(t,y);

随机信号分析课程设计完整版

随机信号分析课程设计 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

随机信号分析课程设计 一、题目: 设计一个抑制载波的复AM 信号,载波为40MHz ,接收带宽10MHz ,调制信号带宽50KHz ,加入高斯白噪声,带内信噪比10dB : 1.1画出加噪后信号时域波形; 画出功率谱密度; 画出其同相、正交分量的功率谱; 统计方法画出包络概率密度。 二、问题分析: 画出加噪后信号时域波形: 首先,由已知条件先采样产生抑制载波的实AM 离散信号sr ,经过Hilbert 变换求得其解析信号s0,并经过低通滤波器,截止频率fs 限制在接收带宽下,加入噪声v ,得到此时的复AM 信号s ,再画出此时得到的复AM 信号时域波形。 画出功率谱密度: 将信号s 进行fft 变换后求得其功率谱密度,画出图形。 画出其同相、正交分量的功率谱: 将信号s 分解为正交分量)(cos )()(t t A t A s φ=和同相分量 )(sin )(t t A A c φ=,进行fft 变换得到功率谱密度,画出图形。 三、程序代码: f0=4*10^7;%载波信号频率40MHz f1=5*10^4;%调制信号频率50kHz fs=1*10^7;%接收机带宽采样频率10Mhz N=40001;%采样点数 %t=(0:1:N-1)/fs; f =10*f0; %画图范围设置 t0 = 5/f1;

t = 0:1/f:t0; k=1; sr=k*cos(2*pi*f1*t).*cos(2*pi*f0*t);%实am信号 % figure(2) % plot(t,sr) s0=hilbert(sr);%复am信号 h=sin(fs*t)/(pi*t); s0=conv(s0,h); am=max(abs(s0)); % % -------加噪方案(由加噪后信噪比确定高斯白噪声)----- snr=10; %设定加入白噪声后的信噪比为10db(均值为0) Pv=(am/(10^(snr/20)))^2;%噪声方差 % % -------------------------------------------------- % % % ---------加噪声------------- v=rand(1,N); v=v*sqrt(Pv);%白噪声 s=s0+v;%信号加噪声 % % ----------信号画图------------- figure(1) subplot(2,1,1),plot(t,s0); axis([*10^(-4) *10^-4 -10 10]) title('原始信号') subplot(2,1,2),plot(t,s); title(['加噪信号信噪比= ',num2str(snr),' dB. 噪声方差= ',num2str(Pv)]) axis([*10^(-4) *10^-4 -10 10]) %%----------画功率谱--------------- s1=detrend(s);%去趋势 ffs=abs(fft(s1)); theta=angle(s1)-2*pi*f0*t; a=abs(s1); ffs=ffs.*conj(ffs)*2/N;%频谱 %ffs=ffs.^2;%功率谱 figure(2) plot(ffs(1:N/2)); title('加噪信号功率谱') axis([3500 4500 0 4*10^4]) xlabel('*10^4') %%------------画正交同相分量功率谱---------- ac=s.*cos(2*pi*f0*t)-j*(hilbert(s)-s).*sin(2*pi*f0*t); as=-s.*sin(2*pi*f0*t)-j*(hilbert(s)-s).*cos(2*pi*f0*t); as1=detrend(as); ffas=abs(fft(as1)); ffas=(abs(ffas)).^2*2/N; ac1=detrend(ac); ffac=abs(fft(ac1)); ffac=(abs(ffac)).^2*2/N;

数字信号课程设计

《数字信号》课程设计报 告 学院:信息科学与工程 专业班级:通信1201

一、 目的与要求 是使学生通过上机使用Matlab 工具进行数字信号处理技术的仿真练习,加深对《信号分析与处理(自)》课程所学基本理论和概念的理解,培养学生应用Matlab 等工具进行数字信号处理的基本技能和实践能力,为工程应用打下良好基础。 二、 主要内容 1.了解Matlab 基本使用方法,掌握Matlab 数字信号处理的基本编程技术。掌握数字信号的基本概念。 2.用Matlab 生成几种典型数字信号(正弦信号、矩形信号、三角波信号等),并做幅频特性分析 2.Matlab 编程实现典型离散信号(正弦信号、矩形信号、三角信号)的离散傅立叶变换,显示时域信号和频谱图形(幅值谱和相位谱);以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。 3.设计任意数字滤波器,并对某类型信号进行滤波,并对结果进行显示和分析。 4.利用matlab 求解差分方程,并做时域和频域分析。用matlab 函数求解单位脉冲响应,并利用窗函数分离信号。 5.用matlab 产生窗函数,并做世玉和频域分析。 6.显示图像,理解图像的模型,将图像进行三原色分解和边缘分析。 三.课程设计题目 一、 1) 生成信号发生器:能产生频率(或基频)为10Hz 的周期性正弦波、三角波和方波信号。绘出它们的时域波形 2) 为避免频谱混叠,试确定各信号的采样频率。说明选择理由。 3)对周期信号进行离散傅立叶变换,为了克服频谱泄露现象,试确定截取数据的长度,即信号长度。分析说明选择理由。 4)绘出各信号频域的幅频特性和相频特性 5)以正弦周期信号为例,观察讨论基本概念(频谱混叠、频谱泄漏、整周期截取等)。 二、已知三个信号()i a p n ,经调制产生信号3 1 ()()cos(/4)i i s n a p n i n π==∑,其中i a 为常 数,()p n 为具有窄带特性的Hanning 信号。将此已调信号通过信道传输,描述该信道的差分方程为 得到接收信号()()*()y n s n h n = 1)分析Hanning 信号()p n 的时域与频域特性 2)分析已调信号()s n 的时域与频域特性 () 1.1172(1)0.9841(2)0.4022(3)0.2247(4) 0.2247()0.4022(1)0.9841(2) 1.1172(3)(4)y n y n y n y n y n x n x n x n x n x n --+---+-= --+---+-

信号与系统课设

一、 1.正弦信号 A = input('input A=') ;% 给正弦信号的幅度A赋值 w = input('input w=') ; % 给正弦信号的频率w赋值 theta =input('input theta='); % 给正弦信号的初始相位theta 赋值disp(['这个信号是周期信号']) T=2*pi/w t = 0 : 0.01 : 3*T ; % 定义时间点 ft = A * sin( w * t + theta ) ; % th计算函数值 plot( t ,ft ) ; % 画图 title( '正弦信号' ) ; % 为图像加标题注释 grid on ; % 在图上画方格

2.复指数信号 j00 = sqrt( - 1 ) ; % 定义复数j a = input('input a='); % 复指数信号赋值w = input('input w='); K = input('input K='); if a==0 disp('这是一个周期信号') T=2*pi/w else if a>0 disp('这不是一个周期信号') else disp('这不是一个周期信号') end end t = -1.5*abs(a) : 0.01 : 1.5*abs(a) % 定义时间点 ft = K*exp( ( a + j00 * w ) * t ) ; subplot( 2 , 2 , 1 ) ; plot( t , real( ft ) ) ; title( '实部' ) ; %画图subplot( 2 , 2 , 2 ) ; plot( t , imag( ft ) ) ; title( '虚部' ) ; subplot( 2 , 2 , 3 ) ; plot( t , abs( ft ) ) ; title( '模' ) ; subplot( 2 , 2 , 4 ) ; plot( t , angle( ft ) ) ; title( '相角' ) ;

信号与系统课程设计报告 信号与系统课程设计题目

信号与系统课程设计报告信号与系统课程设计题目 信号与系统课程设计报告 ——频分复用通信系统的仿真设计 指导老师:XXX 小组成员: 摘要: 通过对信号与系统这门课程第八章通信系统学习,我们对频分复用(FDMA )技术产生了浓厚的兴趣,于是决定自己利用MATLAB 强大的仿真功能来对频分复用系统进行仿真。本文首先录制三段不同的语音信号。然后通过推导,确定合适的载波信号的频率,对信号进行调制,调制后整合到一个复用信号上。再在复用信号上加一个随机的高斯白噪声得到在信道中传输的信号。之后根据通过对复用信号的频谱分析,得出切比雪夫滤波器的各项参数,通过设计好的滤波器进行信号分离后分别根据载波信号进行解调,再通过一个低通滤波器,得到原始信号。通过此次对FDMA 的仿真,我们更清楚了解了频分复用的工作原理,以及AM 调制解调方法,和滤波器的设计方法。频分复用技术对与通信系统节省资源有着重要的意义。

关键词: 频分复用 MATLAB 高斯白噪声 引言: 在电话通信系统中,语音信号频谱在300—3400Hz 内,而一条干线的通信资源往往远大于传送一路语音信号所需的带宽。这时,如果用一条干线只传一路语音信号会使资源大大的浪费,所以常用的方法是“复用”,使一条干线上同时传输几路电话信号,提高资源利用率。 本文是基于MATLAB 的简单应用,首先录制三段不同的语音信号。然后选择合适的高频载波,对信号进行调制,调制后整合到一个复用信号上。确定合适的信噪比,在复用信号上加一个随机的高斯白噪声得到在信道中传输的信号。之后根据载波信号设计合适的带通滤波器将三种信号进行分离,信号分离后分别进行同步解调,再通过一个低通滤波器,得到通过频分复用系统传输后得到的各个信号,将得到的信号与原信号对比,要保证信号与原信号吻合较好。 正文:

数字信号处理课程设计指导书1

数字信号处理上机指导 设计一 正余弦信号的谱分析 【一】 设计目的 1. 用DFT 实现对正余弦信号的谱分析; 2. 观察DFT 长度和窗函数长度对频谱的影响; 3. 对DFT 进行谱分析中的误差现象获得感性认识。 【二】 设计原理 一、谱分析原理 数字信号处理方法的一个重要用途是在离散时间域中确定一个连续时间信号的频谱,通常称为频谱分析,更具体地说,它也包括确定能量谱和功率谱。数字频谱分析可以应用在很广阔领域,频谱分析方法是基于以下的观测:如果连续时间信号)(t g a 是带限的,那么它的离散时间等效信号)(n g 的DFT 进行谱分析。然而,在大多数情况下,)(t g a 是在∞<<∞-t 范围内定义的,因此)(n g 也就定义在∞<<∞-n 的无线范围内,要估计一个无限长信号的频谱是不可能的。实用的方法是:先让模拟连续信号)(t g a 通过一个抗混叠的模拟滤波器,然后把它采样成一个离散序列)(n g 。假定反混叠滤波器的设计是正确的,则混叠效应可以忽略,又假设A/D 变换器的字长足够长,则A/D 变换中的量化噪声也可忽略。 假定表征正余弦信号的基本参数,如振幅、频率和相位不随时间改变,则此信号的傅立叶变换)(ω j e G 可以用计算它的DTFT 得到 ∑ ∞ -∞ =-= n n j j e n g e G ωω )()( (1.1) 实际上无限长序列)(n g 首先乘以一个长度为M 的窗函数)(n w ,使它变成一个长为M 的有限长序列,)()()(1n w n g n g =,对)(1n g 求出的DTFT )(1ω j e G 应该可以作为原连续 模拟信号)(t g a 的频谱估计,然后求出)(1ω j e G 在πω20≤≤区间等分为N 点的离散傅立 叶变换DFT 。为保证足够的分辨率,DFT 的长度N 选的比窗长度M 大,其方法是在截断了的序列后面补上N -M 个零。计算采用FFT 算法。 二、MATLAB 函数介绍 1. 输入函数input( ) 格式:R=input(string) 功能:在屏幕上显示input 括号后的’string ’内容,提示用户从键盘输入某值,并将输入的值赋给R 。 例如,在命令窗口输入R=input(‘How many apples ’) 会显示How many apples

课题信号与系统课程设计报告书

信号与系统课程设计 课程名称:信号与系统 题目名称:滤波器的设计与实现 学院:电气与电子工程学院 专业班级:电气工程及其自动化 学号:3 学生:宗喜 指导教师:黄劲 2015年12 月20 日

目录 一、设计要求 (2) 二、设计原理 (2) 三、设计思路 (3) 四、设计容 (3) A、一阶有源滤波电路 (3) B、二阶有源滤波电路 (5) 1、二阶低通滤波电路 (5) 2、二阶高通滤波电路 (6) 3、二阶带通滤波电路 (8) C、用仿真软件设计滤波器 (10) 1、给定性能参数设计滤波器 (10) a、二阶低通滤波器 (10) b、二阶高通滤波器 (11) c、二阶带通滤波器 (12) 2、不同阶数滤波器性能比较 (12) D、滤波器的Matlab设计仿真 (13) 1、二阶低通滤波器 (13) 2、二阶高通滤波器 (14) 五、参考文献 (16)

一、设计要求 自已设计电路系统,构成低通滤波器、高通滤波器和带通滤波器。利用Matlab或其他仿真软件进行仿真。 有源滤波器由是有源元件和无源元件(一般是R和C)共同组成的电滤波器。和无源滤波器相比,它的设计和调整过程较简便,此外还能提供增益。因此,本课程设计中选择了二阶有源滤波器作为主要研究对象。 1、自行设计电路图,确定前置放大电路,有源滤波电路,功率放大电路的方案, 并使用绘图软件(Electronics Worrkbench)画出设计电路,包括低通、高通和带通。 2、所设计的滤波器不仅有滤波功能,而且能起放大作用,负载能力要强。 3、根据给定要求和电路原理图计算和选取单元电路的元件参数。 4、用Matlab或其他仿真软件(FilterLab)对滤波器进行仿真,记录仿真结果。 二、设计原理 1、电容器C具有通高频阻低频的性能。 2、由源滤波器由放大电路部分和滤波电路部分组成。 3、仿真软件可以将滤波器的性能直观的表现出来。 4、各种滤波器的幅频特性:

相关主题
文本预览
相关文档 最新文档