精华内容
下载资源
问答
  • 运用matlab代码实现FIR滤波器,包括低通、高通、带通、带阻
  • matlab实现FIR低通滤波器

    热门讨论 2010-01-13 16:30:46
    本程序是用matlab实现的FIR低通滤波器,通过加载一段音频文件,进行滤波处理,最后又回放滤波器后的音频文件…… 可以通过听觉上区分滤波前后的差别,更好的方式当然是通过观察滤波前后的频谱来进行验证……
  • %用窗函数法设计线性相位低通滤波器 clear all; wp=0.5*pi; ws=0.6*pi; wd=ws-wp; %hanning窗 N_hann=ceil(8*pi/wd; wc=(wp+ws)/2; if mod(N_hann,2)==0 N_hann=N_hann+1; end hann_win=hanning(N_hann; b_hann=fir1...
  • 使用MATLAB设计FIR低通滤波器

    千次阅读 2020-09-29 20:33:32
    使用MATLAB设计FIR低通滤波器 ** 关于现代通信原理作业。 https://blog.csdn.net/tanghonghanhaoli/article/details/100533581 这是老师给出的提示,里面有比较详细的讲解,下面写一些我的想法。 1. 为什么要设计低...

    **

    使用MATLAB设计FIR低通滤波器

    **
    关于现代通信原理作业。
    https://blog.csdn.net/tanghonghanhaoli/article/details/100533581
    这是老师给出的提示,里面有比较详细的讲解,下面写一些我的想法。

    1. 为什么要设计低通滤波器
    我们可以看到例子中给的m(t)在时域中已经是物理可实现的信号了,但是在频域上看这个信号的频谱是无限宽的,显然这用计算机是难以处理的,加上Sa信号旁瓣的影响并不是很大,所以我们考虑滤除旁瓣,即使用低通滤波器。

    2. 关于如何设计低通滤波器的理论分析
    对于例题中是想保留Sa信号±10Hz内的频率分量,即需要设计一个频率范围在±10Hz的低通滤波器h(t),也就是频域为一个方波信号H(f)。由信号与系统的知识可得,频域方波,时域则为Sa信号。时域h(t)如果为标准的Sa函数,则在t<0的时候,h(t)还会有值,这明显是物理不可实现的,所以这里考虑将h(t)进行一定的时移。

    注意:这里并不会影响滤波器的功能,因为时域平移对应频域的相移,但是幅度没有改变,所以即使时域平移了,频域的幅频特性并不会改变,依然是在±10Hz通过信号。

    3. 关于MATLAB的Filter Designer
    在MATLAB的Filter Designer中就将中心移到了(N/2)*Ts,N就是对h(t)的抽样点个数。时域抽样点越多,对应的时域波形就越接近Sa信号,频域就越接近方波,即越接近我们要的低通滤波器。同时,如果抽样频率Fs不变,则Ts也不会改变,抽样点N增加,那么中心平移得就更多了,即时延就更多了;换个角度理解,抽样点更多,抽样时间间隔Ts不变,也就意味着对更高频的旁瓣也会被采样,则被采样的Sa信号更宽了,占用的时间也更多了,也能想象时延会更大。

    但是在MATLAB中,N好像是由系统根据你设置的参数自动匹配的。我没有看到设置抽样个数N的选项,只有设置抽样频率Fs的选项,N会根据你设置的Fs进行自动匹配,就是设置完参数后点击Design Filter后,左上角看到的order的数值。Fs增加,即Ts减小,N会随之增加,在MATLAB中,我们可以看到两者的变化速率是一致的,所以中心始终在一个位置。(所以我在想是不是MATLAB关于Design Filter的系统设置就是只采样主瓣和相邻几个旁瓣的数值,这样也确实已经很接近一个Sa信号了,更高频的旁瓣其实幅度很小,近似为0应该也不会带来太多误差)
    在这里插入图片描述

    本人学生,难免学艺不精,若有疏漏错误之处,敬请指正!

    展开全文
  • 实用的程序代码,用于adc采样之后的滤波
  • matlab上实现FIR低通滤波器,并用它实现对噪声的滤除,每一步都加有注释,方便参考,程序运行无误
  • 充分利用有限冲击响应数字滤波器(Finite Impulse Response digital filter ,FIR)系数的对称特性,借助于MATLAB语言和现场可编程门阵列(FPGA)实现了一种高效的低通滤波器。设计过程通过简化的VHDL语言编写程序...
  • matlab中用汉明窗设计低通滤波器,主要用于心电信号的滤波,可通过直接调节参数进行截止频率的修改。方便好用
  • FIR设计-基于MatlabFIR低通滤波器的设计与仿真.pdf 基于MatlabFIR低通滤波器的设计与仿真.pdf FIR设计 FIR滤波器设计与仿真。
  • matlab 一个简单的FIR低通滤波器设计例子 先直接放代码跟结果 %假设有一个3hz的信号,由于某种原因带有一些高频噪声,需要将其滤除掉 close all; clear all; load lowpass_fir; %fs=20 fc=6的32阶低通滤波器汉明窗 ...

    matlab 一个简单的FIR低通滤波器设计例子

    先直接放代码跟结果

    %假设有一个3hz的信号,由于某种原因带有一些高频噪声,需要将其滤除掉
    close all;
    clear all;
    load lowpass_fir; %fs=20 fc=6的32阶低通滤波器汉明窗
    
    fs = 20;  %采样率
    T0 = 10;  %信号时长10s
    F0 = 1/T0; %频率分辨率
    N = fs*T0; %采样点数
    t = (0:N-1)/fs;  %时间轴坐标
    f = (0:F0:fs/2-F0);  %频率轴坐标
    
    x = sin(2*pi*3*t)+1.2*sin(2*pi*7*t)+0.7*sin(2*pi*8*t)+0.2*randn(size(t));  %模拟信号
    subplot(2,2,1);
    plot(t(1:100),x(1:100));
    
    fx = abs(fft(x))*(2/N); %2/N中的N很好理解,2是因为matlab的FFT把负频也算上了,只分析正频需要加倍
    subplot(2,2,3);
    plot(f,fx(1:N/2));
    
    y = filter(b_fir,1,x);
    subplot(2,2,2);
    plot(t(1:100),y(1:100));
    
    fy = abs(fft(y))*(2/N);
    subplot(2,2,4);
    plot(f,fy(1:N/2));
    

    在这里插入图片描述

    1.输出有延迟,FIR滤波器的特性,阶数越大延迟越高,延迟为(N-1)/2,

    2.窗函数法不可避免带来一定的频谱泄露,所以输出在3hz幅度变小,附近的频率分量增大

    要有基本的数信理论才能看懂,最重要的是两点性质

    1.观测时长为T0,则频率分辨率为F0=1/T0

    2.采样频率为fs,则最大观测频率为fs

    这样才能将坐标系对应上

    matlab的滤波器设计如下,需要将滤波器系数导出这样方便使用,有了系数就可以用C语言去实现了。对于入门来说,用什么窗,阶数是多少就随便了
    在这里插入图片描述

    展开全文
  • 本m文件基于matlab使用firpm函数计算出滤波器系数,从而完成了使用FIR滤波器拟合一阶RC电路的功能。这种思想可以扩展到其他的传输函数上。
  • 1 绪 论 1.1 引言 滤波技术是信号分析信号处理技术的重要分支无论是信号的获取传输还是信号的处理转换都离不开滤波技术滤波技术对信号安全可靠和有效灵活的传递至关重要1 在电子系统由于滤波器的好坏直接影响...
  • 方法:程序采用巴特沃斯低通滤波和椭圆低通滤波,其中,备注对涉及到的函数进行通俗的解释,并画出了滤波器的频率响应特性和时域、频域滤波结果。其中还对两个滤波函数(fftfilt, filtfilt)得结果进行对比,显示了...
  • MATLAB 设计FIR 低通滤波器.txt
  • FIR滤波器(内含完整的MATLAB代码)
  • FIR低通滤波器

    2015-06-08 20:03:59
    数字低通滤波器FIR,用MATLAB仿真的,可以运行
  • 基于matlab的布莱克曼窗函数法设计的低通滤波器 基于matlab的布莱克曼窗函数法设计的低通滤波器 基于matlab的布莱克曼窗函数法设计的低通滤波器
  • fir低通滤波器

    2021-06-17 15:51:08
    有限冲激响应( Finite Impulse Response, FIR滤波器,又被称为非递归线性滤波器,是数字 信号处理系统最基本的元件。 FIR 滤波器的脉冲响应由有限个采样值构成,长度(抽头数)为 N、 阶数为 N−1 的 FIR ...

    fir

    	有限冲激响应( Finite Impulse Response, FIR)滤波器,又被称为非递归线性滤波器,是数字
    

    信号处理系统中最基本的元件。 FIR 滤波器的脉冲响应由有限个采样值构成,长度(抽头数)为 N、
    阶数为 N−1 的 FIR 系统的转移函数、差分方程和单位冲激响应分别如下列三式所示。
    在这里插入图片描述

    	无限冲激响应( Infinite Impulse Response, IIR)滤波器,又被称为递归线性滤波器。顾名思
    

    义, FIR 和 IIR 是相对的,相比于 IIR, FIR 具备线性相位特性。这里解释一下线性相位的概念:如果
    滤波器的 N 个实值系数为对称或者反对称结构则该滤波器具有线性相位,即 W(n)=±W(N−1−n)W(n)
    =±W(N−1−n)。此外, FIR 更易于设计,但同样指标下 FIR 滤波器需要更多的参数,即实现时需要消
    耗更多的计算单元,因而会产生较大的延迟。

    实现目标

    	使用采样率大于 100M 的双通道的示波器与 FPGA 开发板相连,将示波器的两个通道分别与 FPGA 的 DA 通道 1 和 DA 通道 2 相连,从而观察两路 DA 的输出。
    	 FPGA 内部产生正弦信号,该信号一路输出给 DA 通道 1,另一路经过 FIR 滤波器后输出给 DA 通道 2。正弦信号的频率约等于 100KHz *(key+1),其受开发板上的 3 个拨码开关控制,可以用 3 位信号 key 表示,即一共可以产生 8 种频率。例如,当 key 等于 0 时可以产生频率约为 100KHz 的正弦信号;当 key 等于 1 时可以产生频率约为 200KHz 的正弦波;当 key 等于 7 时可以产生频率约为 800KHz 的正弦波。 FIR 滤波器是低通滤波器,其截止频率是 500KHz,由此可见,原则上超过 500KHz 的信号就会被滤除。
    

    MATLAB产生滤波器系数

    打开 matlab,在其命令窗口输入 fdatool 按下回车。
    在下面的窗口进行参数设计。
    参数设置好,可以导出滤波器系数。
    在这里插入图片描述

    FPGA调用fir IP核

    导入matlab产生的滤波器系数,再进行一些参数的设置。
    在这里插入图片描述

    verilog代码

    module fir_9709(
    	//输入信号
    	input	wire			sys_clk		,
    	input	wire			sys_rst_n	,
    	input	wire	[2:0]	key_wave	,
    	//a通道
    	output	wire			dac_clk_a	,
    	output	reg		[7:0]	dac_data_a	,
    	output	wire			dac_wr_a	,
    	//b通道
    	output	wire			dac_clk_b	,
    	output	reg		[7:0]	dac_data_b	,
    	output	wire			dac_wr_b	,
    	//ad9709模式设置
    	output	wire			dac_sleep	,
    	output	wire			dac_mode		
    );
    
    reg		[7:0]	sin_data		;
    reg		[31:0]	cnt0			;
    reg		[17:0]	addr_reg		;
    reg		[2:0]	cnt1			;
    wire	[7:0]	dac_data_reg	;
    
    wire			flag_in			;
    wire	[6:0]	addr			;
    wire	[7:0]	data_out_b		;
    wire			flag_out		;
    
    always@ (posedge sys_clk or negedge sys_rst_n)
    	if(sys_rst_n == 1'b0)
    		cnt0 <= 32'd0;
    	else
    		cnt0 <= cnt0 + 1'b1;
    
    always @ (*) begin
    	case (key_wave)
    		0:addr_reg = cnt0 *262;
    		1:addr_reg = cnt0 *524;
    		2:addr_reg = cnt0 *786;
    		3:addr_reg = cnt0 *1029;
    		4:addr_reg = cnt0 *1311;
    		5:addr_reg = cnt0 *1573;
    		6:addr_reg = cnt0 *1835;
    		7:addr_reg = cnt0 *2097;
    		default : addr_reg = cnt0 *262;
    	endcase
    end
    
    always @ (*) begin
    	case(addr)
    	0	:sin_data<=	8'h7f;
    	1	:sin_data<=	8'h85;
    	2	:sin_data<=	8'h8c;
    	3	:sin_data<=	8'h92;
    	4	:sin_data<=	8'h98;
    	5	:sin_data<=	8'h9e;
    	6	:sin_data<=	8'ha4;
    	7	:sin_data<=	8'haa;
    	8	:sin_data<=	8'hb0;
    	9	:sin_data<=	8'hb6;
    	10	:sin_data<=	8'hbb;
    	11	:sin_data<=	8'hc1;
    	12	:sin_data<=	8'hc6;
    	13	:sin_data<=	8'hcb;
    	14	:sin_data<=	8'hd0;
    	15	:sin_data<=	8'hd5;
    	16	:sin_data<=	8'hda;
    	17	:sin_data<=	8'hde;
    	18	:sin_data<=	8'he2;
    	19	:sin_data<=	8'he6;
    	20	:sin_data<=	8'he9;
    	21	:sin_data<=	8'hed;
    	22	:sin_data<=	8'hf0;
    	23	:sin_data<=	8'hf3;
    	24	:sin_data<=	8'hf5;
    	25	:sin_data<=	8'hf8;
    	26	:sin_data<=	8'hf9;
    	27	:sin_data<=	8'hfb;
    	28	:sin_data<=	8'hfd;
    	29	:sin_data<=	8'hfe;
    	30	:sin_data<=	8'hfe;
    	31	:sin_data<=	8'hff;
    	32	:sin_data<=	8'hff;
    	33	:sin_data<=	8'hff;
    	34	:sin_data<=	8'hfe;
    	35	:sin_data<=	8'hfe;
    	36	:sin_data<=	8'hfd;
    	37	:sin_data<=	8'hfb;
    	38	:sin_data<=	8'hf9;
    	39	:sin_data<=	8'hf8;
    	40	:sin_data<=	8'hf5;
    	41	:sin_data<=	8'hf3;
    	42	:sin_data<=	8'hf0;
    	43	:sin_data<=	8'hed;
    	44	:sin_data<=	8'he9;
    	45	:sin_data<=	8'he6;
    	46	:sin_data<=	8'he2;
    	47	:sin_data<=	8'hde;
    	48	:sin_data<=	8'hda;
    	49	:sin_data<=	8'hd5;
    	50	:sin_data<=	8'hd0;
    	51	:sin_data<=	8'hcb;
    	52	:sin_data<=	8'hc6;
    	53	:sin_data<=	8'hc1;
    	54	:sin_data<=	8'hbb;
    	55	:sin_data<=	8'hb6;
    	56	:sin_data<=	8'hb0;
    	57	:sin_data<=	8'haa;
    	58	:sin_data<=	8'ha4;
    	59	:sin_data<=	8'h9e;
    	60	:sin_data<=	8'h98;
    	61	:sin_data<=	8'h92;
    	62	:sin_data<=	8'h8c;
    	63	:sin_data<=	8'h85;
    	64	:sin_data<=	8'h7f;
    	65	:sin_data<=	8'h79;
    	66	:sin_data<=	8'h72;
    	67	:sin_data<=	8'h6c;
    	68	:sin_data<=	8'h66;
    	69	:sin_data<=	8'h60;
    	70	:sin_data<=	8'h5a;
    	71	:sin_data<=	8'h54;
    	72	:sin_data<=	8'h4e;
    	73	:sin_data<=	8'h48;
    	74	:sin_data<=	8'h43;
    	75	:sin_data<=	8'h3d;
    	76	:sin_data<=	8'h38;
    	77	:sin_data<=	8'h33;
    	78	:sin_data<=	8'h2e;
    	79	:sin_data<=	8'h29;
    	80	:sin_data<=	8'h24;
    	81	:sin_data<=	8'h20;
    	82	:sin_data<=	8'h1c;
    	83	:sin_data<=	8'h18;
    	84	:sin_data<=	8'h15;
    	85	:sin_data<=	8'h11;
    	86	:sin_data<=	8'he;
    	87	:sin_data<=	8'hb;
    	88	:sin_data<=	8'h9;
    	89	:sin_data<=	8'h6;
    	90	:sin_data<=	8'h5;
    	91	:sin_data<=	8'h3;
    	92	:sin_data<=	8'h1;
    	93	:sin_data<=	8'h0;
    	94	:sin_data<=	8'h0;
    	95	:sin_data<=	8'h0;
    	96	:sin_data<=	8'h0;
    	97	:sin_data<=	8'h0;
    	98	:sin_data<=	8'h0;
    	99	:sin_data<=	8'h0;
    	100	:sin_data<=	8'h1;
    	101	:sin_data<=	8'h3;
    	102	:sin_data<=	8'h5;
    	103	:sin_data<=	8'h6;
    	104	:sin_data<=	8'h9;
    	105	:sin_data<=	8'hb;
    	106	:sin_data<=	8'he;
    	107	:sin_data<=	8'h11;
    	108	:sin_data<=	8'h15;
    	109	:sin_data<=	8'h18;
    	110	:sin_data<=	8'h1c;
    	111	:sin_data<=	8'h20;
    	112	:sin_data<=	8'h24;
    	113	:sin_data<=	8'h29;
    	114	:sin_data<=	8'h2e;
    	115	:sin_data<=	8'h33;
    	116	:sin_data<=	8'h38;
    	117	:sin_data<=	8'h3d;
    	118	:sin_data<=	8'h43;
    	119	:sin_data<=	8'h48;
    	120	:sin_data<=	8'h4e;
    	121	:sin_data<=	8'h54;
    	122	:sin_data<=	8'h5a;
    	123	:sin_data<=	8'h60;
    	124	:sin_data<=	8'h66;
    	125	:sin_data<=	8'h6c;
    	126	:sin_data<=	8'h72;
    	127	:sin_data<=	8'h79;
    endcase
    end
    
    assign addr = addr_reg[17:10];
    assign flag_in = (cnt1 == 2'd3)?1'b1:1'b0;
    assign dac_data_reg = sin_data - 128;
    
    always @ (posedge sys_clk or negedge sys_rst_n)
    	if(sys_rst_n == 1'b0)
    		cnt1 <= 2'd0;
    	else
    		cnt1 <= cnt1 + 1'b1;
    
    always @ (posedge sys_clk or negedge sys_rst_n)
    	if(sys_rst_n == 1'b0)
    		dac_data_a <= 8'd0;
    	else
    		dac_data_a <= 255 - sin_data;
    		
    always @ (posedge sys_clk or negedge sys_rst_n)
    	if (sys_rst_n == 1'b0)
    		dac_data_b <= 8'd0;
    	else if (flag_out)
    		dac_data_b <= data_out_b;
    	else
    		dac_data_b <= 255-(dac_data_b + 128);
    
    my_fir my_fir_inst(
    .clk				(sys_clk),         	     	//                     clk.clk
    .reset_n			(sys_rst_n),         		 //                     rst.reset_n
    .ast_sink_data		(dac_data_reg),  		 	 //   avalon_streaming_sink.data
    .ast_sink_valid		(flag_in),   				//                        .valid
    .ast_sink_error		(2'b00),   					//                        .error
    .ast_source_data	(data_out_b),  				// avalon_streaming_source.data
    .ast_source_valid	(flag_out),  				//                        .valid
    .ast_source_error  	()  			 			//                        .error
    	);
    
    assign dac_mode = 1'b1;
    assign dac_sleep = 1'b0;
    
    assign dac_clk_a = ~ sys_clk;
    assign dac_wr_a = dac_clk_a;
    
    assign dac_clk_b = ~ sys_clk;
    assign dac_wr_b = dac_clk_b;
    
    endmodule
    
    

    仿真代码

    `timescale 1ns/1ns 
    
    module fir_9709_tb();
    
    reg			sys_clk		;
    reg			sys_rst_n	;
    reg	[2:0]	key_wave	;
    
    wire		dac_clk_a	 ;
    wire[7:0]	dac_data_a	 ;
    wire		dac_wr_a	 ;
    
    wire		dac_clk_b	 ;
    wire[7:0]	dac_data_b	 ;
    wire		dac_wr_b	 ;
    
    wire		dac_sleep	 ;
    wire		dac_mode	 ;
    
    initial begin
    	sys_clk = 1'b1;
    	sys_rst_n = 1'b0;
    	#21
    	sys_rst_n = 1'b1;
    	#20
    	key_wave = 3'd0;
    	#100000;
    	key_wave = 3'd1;
    	#100000;
    	key_wave = 3'd2;
    	#100000;
    	key_wave = 3'd3;
    	#100000;
    	key_wave = 3'd4;
    	#100000;
    	key_wave = 3'd5;
    	#100000;
    	key_wave = 3'd6;
    	#100000;
    	key_wave = 3'd7;
    	#100000;
    	
    	#100000
    	$stop;
    end
    
    always #10 sys_clk = ~sys_clk;
    
    fir_9709 fir_9709_inst(
    
    .sys_clk	(sys_clk	),
    .sys_rst_n	(sys_rst_n	),
    .key_wave	(key_wave	),
                 
    .dac_clk_a	(dac_clk_a	),
    .dac_data_a	(dac_data_a	),
    .dac_wr_a	(dac_wr_a	),
                 
    .dac_clk_b	(dac_clk_b	),
    .dac_data_b	(dac_data_b	),
    .dac_wr_b	(dac_wr_b	),
                 
    .dac_sleep	(dac_sleep	),
    .dac_mode	(dac_mode	)	
    );
    
    endmodule
    

    出现问题

    	编译没有错误,在调用modelsim时却出现如下错误:
    

    在这里插入图片描述

    大佬们有知道的评论一下呗。。

    展开全文
  • 基于MATLABFIR低通滤波器设计.pdf
  • FIR低通滤波器设计

    2012-10-19 14:21:56
    应用matlab进行编程设计FIR低通滤波器的设计
  • 基于MatlabFIR低通滤波器的设计.pdf
  • MATLAB实现低通滤波器,然后用C语言实现
  • 基于matlab平台实现FIR低通滤波器的仿真
  • 本程序是窗函数法设计FIR数字滤波器Matlab程序——矩形窗
  • 利用matlab代码来实现fdatool生成滤波器系数的功能(FIR 低通滤波器) 用matlab设计滤波器时,我们会使用到fdatool工具, 首先大概说一下这个工具的使用。 假设我们需要设计一个滤波器: 采样率Fs为30.72MHz。 通带...

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    利用matlab代码来实现fdatool生成滤波器系数的功能(FIR 低通滤波器)

    用matlab设计滤波器时,我们会使用到fdatool工具,

    首先大概说一下这个工具的使用。

    假设我们需要设计一个滤波器:
    采样率Fs为30.72MHz。
    通带Fpass: 9 MHz,
    阻带Fstop: 10MHz
    带内波动: Apass: 0.1
    带外抑制: Apass: 80
    在这里插入图片描述
    定点化,将系数归一化,设置如下图,确保输入通带的波形和输出波形幅值基本不变。
    在这里插入图片描述
    生成的COE文件可以直接被XILINX的 IP核使用。

    如果上述生成滤波器系数的步骤,可以通过matlab代码来实现,则会更加的事半功倍。
    例如,假如有一个这样的需求
    采样率Fs为80MHz。
    通带Fpass: 9+n0.5 MHz, (0<=n<=40)
    阻带Fstop: 10+n
    0.5MHz (0<=n<=40)
    带内波动: Apass: 0.1
    带外抑制: Apass: 80
    需要生成41组COE,每次都通过fdatool工具来进行生成,那将是繁琐的。而我们可以通过以下代码来简化工作:

    
    figure(1);
     
    Apass = 0.1;
    Astop = 80;
    Fs = 30.72;
    Fpass = 9;
    Fstop = 10;
     
    dev = [(10^(Apass /20)-1)/(10^(Apass /20)+1)  10^(-Astop/20)];
    [n,fo,ao,w] = firpmord([Fpass Fstop] ,[1 0],dev,Fs);
    b = firpm(n,fo,ao,w,{20});
    bb = round(b*2^15);
    plot(bb);
    grid;
    hold on;
    I = find(bb < 0); bb(I) = 65536 + bb(I);
    c = [ dec2hex(bb)]; 
    fid1 = fopen('d:\filter1.coe','w');  
    fprintf(fid1,';Create by gzy de tool \n'); 
    fprintf(fid1,'Radix = 16;\n'); 
    fprintf(fid1,'Coefficient_Width = 16;\n');  
    fprintf(fid1,'CoefData = \n');  
    for i = 1 : length(b)-1  
        fprintf(fid1,'%s,\n',c(i,end-3:end));    
    end;  
    fprintf(fid1,'%s;\n',c(end,end-3:end));   
    fclose(fid1);
    
    

    上面的代码与fdatool生成的定点化系数完全一致。


    写于2021年10月11日。
    如需交流,QQ:172146579

    展开全文
  • 在labVIEW软件不用软件提供的滤波器VI,而是用窗函数设计的一个低通 FIR 滤 波器(凯泽窗),截止频率为405Hz,可修改。根据差分方程,并利用 MATLAB 软件里的 fdatool 工具设计出系数, 然后和输入序列做运算的方法...
  • 基于MatlabFIR低通滤波器设计论文.doc
  • 基于MatlabFIR滤波器在DSP的实现.pdf 基于MatlabFIR滤波器在DSP的实现 基于MATLABFIR数字高通滤波器分析和设计.pdf 基于MATLABFIR数字高通滤波器分析和设计 ...
  • 北京师范大学 课程设计报告 课程名称 DSP 设计名称 FIR 低通高通带通和带阻数字滤波器的设计 姓 名 学 号: 班 级 指导教师 起止日期 课程设计任务书 学生班级 设计名称 起止日期 学生姓名 学号 FIR 低通高通带通和带...
  • [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)

    万次阅读 多人点赞 2019-11-16 00:54:00
    ​ IIR滤波器主要设计方法先设计一个模拟低通滤波器,然后把它转化为形式上的数字滤波器。但对于FIR滤波器来说,设计方法的关键要求之一就是保证线性相位条件。而IIR滤波器的设计方法只对幅值特性进行设计,因此...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,816
精华内容 726
关键字:

matlab中使用fir低通滤波器

matlab 订阅