clc; clear; close all; warning off; addpath(genpath(pwd)); format long; M=8; %% chnnale numbers m=4; %% factor N=2*m*M; F=10; limit=1e-8; alpha=1e4; iota=0.6; [pFilter,E1]=cmfb_pfd_lim(M,m,F,limit,alpha,iota); bVector=pFilter; aVector=[1]; [h,w]=freqz(bVector,aVector,1024); figure(1);subplot(1,2,1);plot(w/(2*pi),20*log10(abs(h)/max(abs(h))),'r');hold on xlabel('归一化频率');ylabel('幅频响应 (dB)');axis([0,0.5,-150,10]); subplot(1,2,2);stem(pFilter);hold on xlabel('样本');ylabel('冲激响应'); for ikk=1:M for inn=1:N CMFB_Analysis_Matrix(ikk,inn)=2*pFilter(inn)*cos((2*(ikk-1)+1)*pi/(2*M)*(inn-1-(N-1)/2)+(-1)^(ikk-1)*pi/4); CMFB_Synthesis_Matrix(ikk,inn)=2*pFilter(inn)*cos((2*(ikk-1)+1)*pi/(2*M)*(inn-1-(N-1)/2)-(-1)^(ikk-1)*pi/4); end; bVector=CMFB_Analysis_Matrix(ikk,:); [h,w]=freqz(bVector,aVector,1024); figure(2);plot(w/(2*pi),20*log10(abs(h)/max(abs(h))));hold on xlabel('归一化频率');ylabel('幅频响应 (dB)'); axis([0,0.5,-150,10]); bVector=CMFB_Synthesis_Matrix(ikk,:); [h,w]=freqz(bVector,aVector,1024); figure(3);plot(w/(2*pi),20*log10(abs(h)/max(abs(h))));hold on xlabel('归一化频率');ylabel('幅频响应 (dB)'); axis([0,0.5,-150,10]); end;
时间: 2024-04-05 18:30:04 浏览: 142
这段代码使用了MATLAB来实现多通道滤波器组的设计和分析。首先使用了cmfb_pfd_lim函数来设计一个多通道余弦调制镜像滤波器组,得到滤波器的系数bVector和误差E1,并将bVector和aVector传递给freqz函数,得到滤波器的幅频响应图像。
接着,使用两个for循环来生成分析和合成矩阵CMFB_Analysis_Matrix和CMFB_Synthesis_Matrix,并将每个通道的滤波器系数bVector传递给freqz函数,得到每个通道的滤波器的幅频响应图像。这些图像显示了滤波器的频率响应特性,可以用于验证滤波器设计是否符合要求。
需要注意的是,这段代码中使用了一些自定义的函数,例如cmfb_pfd_lim函数,这些函数的具体实现可能需要查看函数代码才能了解。此外,这段代码也使用了一些MATLAB绘图函数,例如plot和stem函数,用于绘制滤波器的幅频响应图像。
相关问题
matlab中的clc; clear all; currentFolder = pwd; addpath(genpath(currentFolder)); data_nameori='Example'; data_name='Example';是什么含义
A:这是一些MATLAB命令的组合。
- clc:清空命令行窗口,以便于更好地查看新的输出。
- clear all:清除工作区中所有变量和函数名,以便于在重新开始操作前清理内存。
- currentFolder = pwd:获取当前MATLAB工作目录的路径,这将被用于后续的文件路径操作。
- addpath(genpath(currentFolder)):将当前目录及其所有子目录添加到MATLAB搜索路径中,以便于后续的函数和脚本引用。
- data_nameori='Example':定义一个原始数据文件名“Example”。
- data_name='Example':定义一个数据文件名“Example”,这通常用于后续的数据处理和保存。
综上,这些命令的组合的含义是为了清空工作区、添加当前目录到MATLAB搜索路径,以便于运行一个名为“Example”的MATLAB脚本并处理数据。
解释这段代码clear;clc;dbstop if error;tic; addpath(genpath('..\..\utils\')); addpath(genpath(pwd)); name_cover = '..\..\utils\Baboon_70.jpg';
这段代码是一个 MATLAB 脚本,它的作用是加载一些工具箱和路径,然后读取一个名为 "Baboon_70.jpg" 的图像文件。这个文件应该位于当前工作目录的上两级目录中的 "utils" 文件夹中。读取完成后,该脚本会计时并输出结果。如果在执行过程中出现错误,该脚本会停止执行并打开调试器。
阅读全文