求学霸!数字信号处理题

2024-05-20

1. 求学霸!数字信号处理题

数字信号处理课程主要研究用数字序列或符号序列表示信号,并用数字计算方法对这些序列进行处理,以便把这些信号变成符合某种需要的形式,例如对信号进行滤波处理、频谱分析、功率谱估计等。本课程重点讨论确定性数字信号的处理,在此基础上,对随机信号处理进行研究。其主要内容有:(1)离散傅里叶变换(DFT):DFT基本理论、基本方法、基本性质,利用循环卷积计算线性卷积方法。快速傅里叶变换(FFT)方法。运用FFT对信号进行谱分析,运用FFT计算线性卷积;(2)数字滤波器原理和设计方法:数字滤波器IIR和FIR类型滤波器基本网络结构,冲激不变法、双线性变换法数字滤波器设计方法,数字巴特沃斯(Butterworth)、切比雪夫(Chebyshev)及椭圆数字滤波器设计方法、步骤及特性。IIR数字滤波器频率变换方法技术,FIR窗函数方法设计滤波器,频率取样方法设计FIR类数字滤波器方法及其特性;(3)离散随机过程:离散随机过程的几个基本特性,功率谱基本性质和计算方法,随机信号通过线性系统;(4)有限长效应:有限长效应引起的误差的分类,不同方法表示负数时量化效应的不同影响。信号由于量化所引入的噪声情形,定点、浮点运算中有限长影响的情形,IIR滤波器、FFT中的数字量化效应情形;(5)功率谱估计:估计理论的几个基本概念,自相关、周期图、直接变换谱估计方法的分析、实现。现代谱估计的几个基本方法。
是否可以解决您的问题?

求学霸!数字信号处理题

2. 数字信号处理的应用


3. 数字信号处理,为什么第三个是线性系统?


数字信号处理,为什么第三个是线性系统?

4. 《现代数字信号处理》和《数字信号处理》的区别?

“数字信号处理”一般电子通信相关专业本科都有开设,本科的“数字信号处理”主要解决确定性离散信号的频谱分析、滤波理论和应用等(如离散傅里叶/Z变换、FIR/IIR数字滤波),主要理论基础是信号与系统。但是常说的“现代数字信号处理”一般是解决离散随机信号的谱分析及滤波等(如现代滤波器、现代谱分析等),实际中处理的信号也大多是随机信号,它的理论基础是信号虽然是随机的,但是确服从一定的统计规律,可以利用起其统计规律对信号进行处理,故需要应用统计学的方法进行分析,一般在研究生相关专业开设,除了信号与系统相关基础外,还需要需要借助概率论、随机过程相关的数学工具!
    因此总的来说,“数字信号处理”主要解决确定性信号的相关问题,而“现代数字信号处理”主要分析和解决离散随机信号的相关问题!

5. 数字信号处理工程师是怎么养成的

知乎用户 不善表达的嵌入式工程师 
60 人赞同 
谈谈我的理解。

(一)写在前面
鄙人大二的时候自学的TI的数字信号处理器,做了几个小项目,但总有瓶颈,觉得这里水太深,还想终身从事DSP开发行业,就报考了某学校的航海学院,选了一个做水下通信技术的导师,经历这么多年,也有自己的理解,身边也多多少少有业内人士在世界各地苟延残喘的活着,所以给题主提提建议,希望有所帮助。

(二)真的存在“DSP工程师”?
首先要明确,数字信号处理是一门非常非常基础的学科,至于说数字信号处理工程师的称呼,个人觉得不太贴切,范围实在太广,暂且理解为利用数字信号处理的知识解决问题的人吧。数字信号处理这条路到研究生阶段还要重新学习(增补知识),将自适应信号和随机信号等扩充进来作为理论基础,还增添小波,希尔伯特等多种处理手段,另外,你会发现大学期间的微积分已经满足不了后续的学习了,所以还要继续学习数学。到这里之后你会发现,原来学习的数字信号处理(本科阶段)仅仅是冰山一角,因为,本科阶段研究的是确定信号和线性时不变系统,这个确实很简单,可现实生活中没有那么多确定和那么多的碰巧,尤其是题主所在的通信行业。所以我个人觉得,作为一个“数字信号处理工程师”,把自己的理论局限于确定信号和线性时不变系统,肯定是不合格的!在这里,我推荐考研,且要考好学校。考研的目的清晰,第一,通过考研可以把数学英语好好学学;第二,可以继续深造,导师毕竟是业内人士,导师人脉帮助和你接触的人的群体进行进一步筛选。第三,你可以继续学习,来真真正正的在这个领域打好基础。 也有人说,我可以在社会上工作,然后自学,我想说的是,自学确实是一种能力,但你能保证一定能找到你想做的工作吗,你的发展方向必须要符合公司的发展方向,这里能自主的成分有几分呢?且社会比校园内部浮躁,多多少少会干扰你的效率。如果真的喜欢这个行业,差这两年吗?再说真有能力的人,不会被考试难住。其实本人也是工作一年后决定辞职考研的。

有了理论基础,就可以选择基于这个基础的方向,每个方向上还有自己支撑理论。比如,做图像处理,视频处理,音频处理,生物医学或者我们做的水下通信,这些所有的方向都是基于数字信号处理理论基础,然后衍生出自己领域的知识。因此,我就觉得,不应该叫数字信号处理工程师,应该叫具体方向的工程师,比如图像处理工程师,音频处理工程师。题主可以选择一个具体方向来研究,每一个方向都很有很高的研究价值,就算去公司应聘,这个薪水也是很高的。

(三)数字信号处理和数字信号处理器都叫DSP
有一些人提到嵌入式的DSP芯片,这个不要和数字信号处理混为一谈,它不是数字信号处理的专利,虽然叫做数字信号处理器,但这里边既有渊源又有差别。DSP芯片属于嵌入式范畴,驱动和开发模式和思维和一般单片机无异。只不过在硬件结构上适合运算信号处理的算法,在外设方面提供了更为人性,更方便工程的功能。一般你可以看到,控制领域也会大量应用DSP设备来跑控制领域的算法。如果要真正的作为一个所谓的数字信号处理工程师,你应该做的主要工作是面向专业领域的专业算法,对于配置DSP设备,应属于嵌入式工程师该做的事情,但话说回来,你要和这个DSP处理器经常打交道,你也同样要熟练掌握的。同样道理,FPGA也是一样。DSP无法满足工程要求的时候,刚好FPGA可以解决,可考虑作为此方案的解决方法,FPGA的独有并行机制很大的优势(举个例子,我就不拽专业词汇了,就通俗的说下,我们当初做水下无线无线通信,调制信号用DSP做的,载波出现谐波干扰,在陆地上完全可以忽略,但水下要还要考虑此频段的干扰信号对某种海洋生物的威胁,故需提纯载波信号,就是用的数字方法,但增加了算法计算量,速度上不来,导致通信失败,故换了一款FPGA)。(不要就此认为FPGA比DSP牛逼,并不是这样,抓老鼠用老鼠夹,切菜用菜刀,什么地方该用什么就用什么)。但DSP和FPGA里面的算法,原理都是一样的,只是需要变换语言,考虑指令不同,运行条件不同等等,算法核心是不变的。可作为数字信号处理工程师的你,这些算法的执行器或者说载体,是不是都应该有所掌握呢,你不能说我这套算法好使,MATLAB验证过了就OK了,移植后实际状况可能并不是那么顺利,你需要考虑这些执行器的指令周期,内存,时序等等,或者要用他们专门的语言来翻译,所以,你要学的东西比想象中多的多。你有一身武艺,一身武功,同样的招式,要拿刀也好使,拿剑也好使,刀和剑只是工具而已,DSP和FPGA单片机就是这武器,真正做一个江湖人,刀剑都要会用的。俗话说,人前显贵,人后遭罪,这身武功并不容易,你需要投入很多很多,也许你的朋友毕业开始攒钱买房子,穿起大牌衣服,给女票买了名贵的化妆品,换了好几千元的手机的时候,你还过得如此清贫,别灰心,你会守得云开见月明的。

只想强调一点,需要功夫在里面,功夫就是时间精力金钱和你的心。速成的东西别人能速成,你也同样能速成,根本没有差异优势,而信号处理给了你这个机会,因为,没人可以速成。

(四)学习建议
至于给题主的建议,本人建议把数学学好至关重要,翻开信号处理的课程你也看到了,满篇的数学推导和证明,你需要去耐心理解这个过程,这样就需要很好的数学功底,建立好了这样的思维,你才能真正的理解这门学科,否则死记公式,为了做题,你痛苦,它也痛苦。那么多定理的出现并不是为了难为你,而是为了解决问题,因为这些看上去复杂的定理出现,才使问题变得简单,只要你用心拜读,发现这些定理真特么神奇。另外,还是建议题主考研,俗话说,师傅领进门,修行在个人。我们要入这个门,就要有这样的关系,不断的去接触这个行业的人,他们用什么软件,他们学到什么程度,你也一目了然,也知道自己处于什么位置了,也知道自己该学什么了。可以说,硕士毕业时候,本科工作两年了,可能硕士刚毕业在职场上欠缺一些经验还需要适应社会大环境而不如本科生,但十年后能一样吗?谁会在乎多出那两年的经验,又是谁基础打的牢,别小瞧这三年,年纪轻轻把基础打好才能建起高楼大厦,所以不要急。如果题主无考研打算,本科一样也有活路,目前信号处理技术处于不断发展中,但经典的也就那些,一般工程常用算法的都被下游公司(德州仪器,ADI这些)封装到函数库中,且普适性非常友好,在网站上也能获的一些网友的开源算法,能把这些经典的算法的功能,适用条件输入输出搞懂一般工程没有问题了。例如,德州仪器的DSP,数字图像处理,音频的处理基本算法都可以直接调用库的,且浮点和定点库分开,开发过程根本不需要了解算法具体如何实现,只把目标放在内存分配,库配置上就好了。我觉得,如果本科毕业能把信号处理什么功能,适用条件,输入输出掰扯明白,足以找一个不错的工作,后续通过学习和工程扩展,也会进步不少的。

(五)学历建议
另外,补充一下,TI公司招FAE已经是硕士打底,更别说进研发。如果想去大公司没有学历,门都进不去。同样是5年工作经验,含金量上肯定有差别。毕业初几年能在大公司跪舔,有大公司的背景支撑,你在以后在此行业会吃的很开,你在小公司经常听见这经理以前都是在XXX牛逼公司做过的(很可能就是一个打酱油的小角色),所以,切勿做井底之蛙,只看当下,要眼光放长,做好规划,年薪20W的在信号处理行业算是低收入人群了。有些人普遍认为,本科毕业再赚钱,读硕士后还要花钱。请改正这样的思维定式,读硕士≠不赚钱。本科教育后尤其是工科,是可以赚钱的,只要你实力过硬,可以接私活做,一个项目结清也是有几万的收入,加上努力学习得到奖学金和导师费,还有名义上的助教费,收入怎么能少呢?只是从事这类行业的人很低调,不太在乎衣食住行的质量,但这并不代表“穷”。

有很多适合本科毕业生的道路,甚至去选择这些道路比研究生去走这条道路要有优势,比如CS行业,这个上手极快,赚的也多,尤其能去那种外包公司历练几年的,那更是吃香,纯属拼工作经验与工作强度。最终,可以总结一条规律,如果这个行业需要有强大的理论背景,考研是最适合的,如果这个行业工程性强,那么就适合早早工作。就像是,通信专业,控制专业,视觉处理专业,人工智能这类的,需要强大的理论支撑,需要学习钻研,所以考研是最适合不过的了;又比如,像是开发软件C++,Java这类的,极具现实实用性,工程性极强,越早上手,做过的项目越多越好。题外话,我建议本科生毕业生能考虑C++的道路,这个老专业或许比不上当今的Java啊,安卓啊,可如果能在十年内修炼成多线程编程骨灰级的玩手,这是很有前途的。

综上,在信号处理行业,无论研究生从背景,平台,基础上,都有优势。所以建议再进一步,攻读硕士学位甚至博士,作为自己事业道路的起点。

数字信号处理工程师是怎么养成的

6. 常用的数字滤波的方法都有哪些,写出其中三种数字滤波的算法

  经典滤波的概念,是根据傅里叶分析和变换提出的一个工程概念。根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。换句话说,就是工程信号是不同频率的正弦波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。实际上,任何一个电子系统都具有自己的频带宽度(对信号最高频率的限制),频率特性反映出了电子系统的这个基本特点。而滤波器,则是根据电路参数对电路频带宽度的影响而设计出来的工程应用电路  。
  现代滤波
  现代滤波思想是和经典滤波思想截然不同的。现代滤波是利用信号的随机性的本质,将信号及其噪声看成随机信号,通过利用其统计特征,估计出信号本身。一旦信号被估计出,得到的信号本身比原来的信噪比高出许多。典型的数字滤波器有Kalman滤波,Wenner滤波,自适应滤波,小波变换(wavelet)等手段[3]  。从本质上讲,数字滤波实际上是一种算法,这种算法在数字设备上得以实现。这里的数字设备不仅包含计算机,还有嵌入式设备如:DSP,FPGA,ARM等。

7. 数字信号中的语音处理课程设计该怎么做?

数字信号处理综合设计 
                            
一、实验目的
1.学会MATLAB的使用,掌握MATLAB的程序设计方法;
2.掌握在Windows环境下语音信号采集的方法;
3.掌握数字信号处理的基本概念、基本理论和基本方法;
4.掌握MATLAB设计FIR和IIR数字滤波器的方法;
5.学会用MATLAB对信号进行分析和处理。
二、实验原理
参考《数字信号处理》教材。
三、主要实验仪器及材料
微型计算机、Matlab6.5教学版、TC编程环境。
四、实验内容
1.语音信号的采集
要求利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道)或其他软件,录制一段自己的话音,时间控制在1秒左右。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,要求理解采样频率、采样位数等概念。
wavread函数调用格式:
y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。
y=wavread(file,N),读取前N点的采样值放在向量y中。
y=wavread(file,[N1,N2]),读取从N1点到N2点的采样值放在向量y中。
2.语音信号的频谱分析
要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。
3.设计数字滤波器和画出频率响应
根据语音信号的特点给出有关滤波器的性能指标:1)低通滤波器性能指标,fp=1000Hz,fc=1200 Hz, As=100dB,Ap=1dB;2)高通滤波器性能指标,fc=2800 Hz,fp=3000 Hz As=100dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200 Hz,fp2=3000 Hz,fc1=1000 Hz,fc2=3200 Hz,As=100dB,Ap=1dB。要求学生首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函数fir1设计FIR滤波器,然后在用双线性变换法设计上面要求的三种滤波器;之后再利用函数butter和cheby1设计上面要求的三种IIR滤波器。最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。
4.用滤波器对信号进行滤波
比较FIR和IIR两种滤波器的性能,然后用性能好的各滤波器分别对采集的信号进行滤波,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
5.比较滤波前后语音信号的波形及频谱
要求在一个窗口同时画出滤波前后的波形及频谱。
6.回放语音信号
在MATLAB中,函数sound可以对声音进行回放。其调用格式:
sound(x,fs,bits);
可以感觉滤波前后的声音有变化。
五、实验思考
1.双线性变换法中Ω和ω之间的关系是非线性的,在实验中你注意到这种非线性关系了吗?从哪几种数字滤波器的幅频特性曲线中可以观察到这种非线性关系? 
2.能否利用公式完成脉冲响应不变法的数字滤波器设计?为什么?
六、实验报告要求 
1.简述实验原理及目的。
2.按照实验步骤及要求,比较各种情况下的滤波性能。
3.总结实验所得主要结论。
4.简要回答思考题。






 
数字信号处理
语音信号的数字滤波
               ——利用双线性变换法实现IIR数字滤波器的设计

一.课程设计的目的

通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法,掌握利用数字滤波器对信号进行滤波的方法,掌握数字滤波器的计算机仿真方法,并能够对设计结果加以分析。

二.课程设计原理

1.用窗函数法设计FIR滤波器
根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1),窗函数类型可根据最小阻带衰减As独立选择,因为窗口长度N对最小阻带衰减As没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为Δw,它与窗口长度N近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N,在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)。
根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n),如果给出待求滤波器频率应为Hd,则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:


在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示;从w=0到w=2π采样N点,采用离散傅里叶反变换(IDFT)即可求出。
用窗函数wd(n)将hd(n)截断,并进行加权处理,得到


如果要求线性相位特性, 则h(n)还必须满足:


根据上式中的正、 负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。 要根据所设计的滤波特性正确选择其中一类。 例如, 要设计线性相位低通特性可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。 
验算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。

2.用双线性变换法设计IIR数字滤波器
脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S平面到Z平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。
 
图1双线性变换的映射关系
为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现
                  (1)
式中,T仍是采样间隔。
当Ω1由-π/T经过0变化到π/T时,Ω由-∞经过0变化到+∞,也即映射了整个jΩ轴。将式(1)写成
 
将此关系解析延拓到整个S平面和S1平面,令jΩ=s,jΩ1=s1,则得
 
再将S1平面通过以下标准变换关系映射到Z平面
z=es1T
从而得到S平面和Z平面的单值映射关系为:
            (2)
      (3)
式(2)与式(3)是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换
式(1)与式(2)的双线性变换符合映射变换应满足的两点要求。
首先,把z=ejω,可得
     (4)
即S平面的虚轴映射到Z平面的单位圆。
其次,将s=σ+jΩ代入式(4),得
 
因此
 
由此看出,当σ0时,|z|>1。也就是说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
双线性变换法优缺点
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。这是因为S平面与Z平面是单值的一一对应关系。S平面整个jΩ轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。这个关系如式(4)所示,重写如下:
 
上式表明,S平面上Ω与Z平面的ω成非线性的正切关系,如图2所示。
由图2看出,在零频率附近,模拟角频率Ω与数字频率ω之间的变换关系接近于线性关系;但当Ω进一步增加时,ω增长得越来越慢,最后当Ω→∞时,ω终止在折叠频率ω=π处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
 
图2双线性变换法的频率变换关系
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,如式(4)及图2所示。由于这种频率之间的非线性变换关系,就产生了新的问题。首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图3所示。
 
图3双线性变换法幅度和相位特性的非线性映射
对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。



三:课程设计的步骤

1.语音信号的采集:
利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道),录制一段自己的话音“信号”, 时间控制在1秒左右,然后将音频文件保存“xh.wav”
(2)在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。

2..语音信号的频谱分析
①首先画出语音信号的时域波形
z1=wavread('d:\laoA.wav');
plot(z1);
图像输出如图1

 
               图1 语音信号时域波形
               
②对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性
z1=wavread('d:\laoA.wav');
y1=z1(1:8192);
Y1=fft(y1);
n=0:8191;
plot(n,Y1);

图像输出如图2:
 
图2 语音信号频谱分析图

3. 设计数字滤波器和对信号滤波

(1)窗函数设计低通滤波器
      程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fp=1000;fc=1200;As=100;Ap=1;Fs=8000;
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(1);
freqz(b,1);
x=fftfilt(b,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);

图形分析如下:
 

 



(2)窗函数设计高通滤波器
程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fp=2800;fc=3000;As=100;Ap=1;Fs=8000;
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,beta); 
ws=(wp+wc)/2/pi;
b=fir1(N-1,ws,'high',wn);
figure(1);
freqz(b,1);
x=fftfilt(b,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);

图形分析如下:
 
 


(3)窗函数设计带通滤波器
程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fp1=1200 ;fp2=3000 ;fc1=1000  ;fc2=3200 ;As=100 ;Ap=1 ;Fs=8000 ;
wp1=2*pi*fp1/Fs; wc1=2*pi*fc1/Fs; wp2=2*pi*fp2/Fs; wc2=2*pi*fc2/Fs;
wdel=wp1-wc1;
beta=0.112*(As-8.7);
N=ceil((As-8)/2.285/wdel);
ws =[(wp1+wc1)/2/pi,(wp2+wc2)/2/pi];
wn= kaiser(N+1,beta); 
b=fir1(N,ws,wn);
figure(1); 
freqz(b,1)
x=fftfilt(b,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,2000,0,0.0003]);
title('滤波后信号频谱')
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);


图形分析如下:

 
 



(4)双线性变换法设计低通滤波器

①选用butter
程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fp=1000;fc=1200;As=100;Ap=1;Fs=8000;
wc=2*fc/Fs; wp=2*fp/Fs;
 [N,ws]=buttord(wc,wp,Ap,As);
[b,a]=butter(N,ws);
figure(1);
freqz(b,a,512,Fs);
x=filter(b,a,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);

图形分析
 


 

②选用cheby1
程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fp=1000;fc=1200;As=100;Ap=1; ;Fs=8000;
wc=2*fc/Fs;wb=2*fp/Fs;
[n,wp]=cheb1ord(wc,wb,Ap,As);
[b,a]=cheby1(n,Ap,wp);
figure(1);
freqz(b,a);
x=filter(b,a,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,4000,0,0.03]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);

图形分析如下:
 

 



(5),双线性变换法设计高通滤波器

①选用butter
程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fc=2800 ;fp=3000 ;As=100;Ap=1;Fs=8000;
wc=2*fc/Fs; wp=2*fp/Fs;
 [N,ws]=buttord(wc,wp,Ap,As);
[b,a]=butter(N,ws,'high');
figure(1);
freqz(b,a,512,Fs);
x=filter(b,a,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);
















图形分析如下:
 


 



②选用cheby1
程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fc=2800 ;fp=3000 ;As=100;Ap=1; Fs=8000;
wc=2*fc/Fs;wb=2*fp/Fs;
[n,wp]=cheb1ord(wc,wb,Ap,As);
[b,a]=cheby1(n,Ap,wp,'high');
figure(1);
freqz(b,a);
x=filter(b,a,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,4000,0,0.03]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);


















图形分析如下:
 
 



(6),双线性变换法设计带通滤波器

①选用butter
程序设计如下
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fp1=1200 ;fp2=3000; fc1=1000 ;fc2=3200 ;As=100;Ap=1; Fs=8000;
 wc=[2*fc1/Fs,2* fc2/Fs];wp=[2*fp1/Fs,2*fp2/Fs]; 
 [N,ws]=buttord(wc,wp,Ap,As);
[b,a]=butter(N,ws,'stop');
figure(1);
freqz(b,a,512,Fs);
x=filter(b,a,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);


















图形分析如下:
 
 




②选用cheby1
程序设计如下:
clear;close all
[z1,fs,bits]=wavread('d:\laoA.wav')
y1=z1(1:8192);
Y1=fft(y1);
fp1=1200 ;fp2=3000; fc1=1000 ;fc2=3200 ;As=100;Ap=1; Fs=8000;
 wc=[2*fc1/Fs,2* fc2/Fs];wb=[2*fp1/Fs,2*fp2/Fs]; 
[n,wp]=cheb1ord(wc,wb,Ap,As);
[b,a]=cheby1(n,Ap,wp,'stop');
figure(1);
freqz(b,a);
x=filter(b,a,z1);
X=fft(x,8192);
figure(2);
subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);
title('滤波前信号频谱');
subplot(2,2,2);plot(abs(X));axis([0,4000,0,0.03]);
title('滤波后信号频谱');
subplot(2,2,3);plot(z1);
title('滤波前信号波形');
subplot(2,2,4);plot(x);
title('滤波前信号波形');
sound(x,fs,bits);



















图形分析如下:
 
 




四、结果分析:

双线性变换法分析:
双线性变换的主要优点:双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象。
双线性变换法的缺点:会产生频率混碟现象,使数字滤波器的频响偏移模拟滤波器的频响。
窗函数法分析:
窗函数法:相位响应有严格的线性,不存在稳定性问题, 设计简单。


五.实验思考

1.双线性变换法中Ω和ω之间的关系是非线性的,在实验中你注意到这种非线性关系了吗?从哪几种数字滤波器的幅频特性曲线中可以观察到这种非线性关系? 

答:在双线性变换法中,模拟频率与数字频率不再是线性关系,所以一个线性相位模拟器经过双线性变换后得到的数字滤波器不再保持原有的线性相位了。如以上实验过程中,采用双线性变化法设计的butter和cheby1数字滤波器,从图中可以看到这种非线性关系。

2.能否利用公式完成脉冲响应不变法的数字滤波器设计?为什么?

答:IIR数字滤波器的设计实际上是求解滤波器的系数 和  ,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。但是它的缺点是,存在频率混迭效应,故只适用于阻带的模拟滤波器。













六.设计体会
在之前数字信号与处理的学习以及完成课后的作业的过程中,已经使用过MATLAB,对其有了一些基础的了解和认识。通过这次练习是我进一步了解了信号的产生、采样及频谱分析的方法。 以及其中产生信号和绘制信号的基本命令和一些基础编程语言。让我感受到只有在了解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维。这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。


六、参考文献:
1.《数字信号处理》丁玉美,高西全等编著,西安:西安电子科技大学出版社
2.《数字信号处理》A.V.奥本海姆,R.W.谢弗著,北京:科学出版社
3.《数字信号处理——理论、算法与实现(第二版)》胡广书编著,北京:电子工业出版社

4.《数字信号处理(第二版)学习指导书》高西全,丁玉美编著,西安:清华大学出版社
5.《数字信号处理实验指导书(MATLAB版)》孙洪,余翔宇等译,北京:电子工业出版社
6.《基于MATLAB的系统分析与设计——信号处理》楼顺天,李博菡编著,西安:西安电子科技大学出版社

数字信号中的语音处理课程设计该怎么做?

8. matlab 如何消除信号的高频分量

让信号过一个低通滤波器就可以。
如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号的剧烈变化将被平滑,由实验内容(1)结果图10.1.1(a)、(b)和(c)可见,经过系统低通滤波使输入信号、和的阶跃变化变得缓慢上升与下降。
基色信号减去亮度信号就得到色差信号 对色差信号进行频带压缩的依据是利用人眼的特性去节约带宽。因为人的眼睛对彩色图像(对图像的彩色部分)的分辨力较低,所以对色差信号传输的带宽比亮度信号校减少基带信号频谱中的高频分量。
这样可以节省传输频带,提高信道的频谱利用率,还可以减少串扰。

扩展资料:
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
参考资料来源:百度百科-MATLAB
最新文章
热门文章
推荐阅读