信号频域处理与分析.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信号频域处理与分析 实验过程与步骤 信号采样 傅里叶变换 频域分析 信号采样 analoginput函数介绍 了解自己的硬件设备 设备使用 声卡初始化 数据采样保存 采集数据的播放 wavplay: wavplay(y,Fs) sound: sound(y,Fs) 离散傅里叶变换 对称性幅值的确定 程序实现: 频域分析 控件统一放置,尽量用panel控件,编程时对照object browerk窗口,省时省力,更方便查错。 提倡用button group控件,具有排他性。 控件Tag属性,尽量用功能英文写,拼音缩写不方便其他人阅读,更不利于自己查错 黄泽辰作品 特点实现函数加窗 窗类型: 矩形窗(Rectangle Window) 三角窗(Triangular Window) 汉宁窗(Hanning Window) 海明窗(Hamming Window) 布拉克曼窗(Blackman Window) * * ——学习汇报 analoginput函数功能:解决软件与硬件端口的接口问题。 外围设备种类较多,需要对其进行指定。 ai=analoginput(‘winsound’); out=daqhwinfo(ai) MaxSampleRate:96000 MinSampleRate:5000 Addchannel(ai,1); 声道选择1,1:2. set(ai,’SampleRate’,Value); 采样频率设定。 set(ai,’triggerRepeat’,value); %连续采样次数可选择 set(ai,’TriggerDelay’,value); %采样时间延迟设定。 set(ai,’TriggerConditionValue’,value); %采样触发条件。 set(ai,’TimeOut’,value); %设置超时等待时间。 声卡初始化 start(ai); %开始采样 data_received = getdata (ai); %采样点保存。 plot(linspace(1,length(data_received)) *1/fs,… data_received); delete(ai); %释放变量。 设 是连续函数 的N个抽样值 这N个点的宽度为N的DFT为 同样的信号,宽度不同的DFT会有不同的结果。在实际操作中一定要保证信号的频率分辨率,所以要符合如下等式: N=fs/F F为信号的频率分辨力 N的最终确定 NFFT=2^nextpow2(N); x=0:0.01:10;i=1; while i=length(x)if x(i)1; y(i)=0; elseif x(i)=1 x(i)=3; y(i)=1; else y(i)=0; end i=i+1; end N=2^nextpow2(length(y)); F=fft(y,N)/length(y); F_abs=2*abs(F(1:N)); f=100/2*linspace(0,1,N); plot(f,F_abs); FFT变换后的频谱图是关于奈奎斯特频率Fs/2对称的。 Fs = 16000; %采样频率 N = 2 ^ nextpow2 (length (data_recieved)); F = fft (data_recieved,N) / length (data_recieved); F = Fs / 2 * linspace (0,1,N/2+1); plot (f,Fs); 由于在时间域内信号加零,致使振幅谱中出现很多其他成分,这是加零造成的。其振幅由于加了多个零而明显减小。 FFT程序中所用数据点数尽量与原含有信号数据点数相同,这样的频谱图具有较高的质量,可减小因补零或截断而产生的影响 求峰值: max(A); 求对应值下标:find (A==max(A)); 求极值:findpicks(A,); [pks,locs] = findpeaks(A); pks = findpeaks(A,threshold,Value) ; *

文档评论(0)

iris + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档