filter_coeff_gen.m

来自「SIMD_FIRs信号处理」· M 代码 · 共 52 行

M
52
字号
 FSover2 = 24000;
 Filters = [ 150, 300, 500, 800, 1200, 2000, 4000 ];
 TAPS = [ 7, 15, 33, 67, 165, 333 ];
 WIDTH = 50;

 filters = length (Filters);
 
 
 for i = 1:length(Filters),
 	for j = 1:length(TAPS),
 		b = fir1(TAPS(j),Filters(i)/FSover2);
 		fn = strcat('Filter_LP_',num2str(Filters(i)),'_',num2str(TAPS(j)),'.dat');
 		fid = fopen(fn,'w');
 		for k = 1:TAPS(j) - 1,
			fprintf(fid,'%6.10f,\n',b(k));
		end
		fprintf(fid,'%6.10f\n',b(length(b)));
		fclose(fid); 
		disp(fn);

 		b = fir1(TAPS(j)+1,Filters(i)/FSover2,'high');
 		fn = strcat('Filter_HP_',num2str(Filters(i)),'_',num2str(TAPS(j)+1),'.dat');
 		fid = fopen(fn,'w');
 		for k = 1:TAPS(j) - 1,
			fprintf(fid,'%6.10f,\n',b(k));
		end
		fprintf(fid,'%6.10f\n',b(length(b)));
		fclose(fid); 
		disp(fn);

 		b = fir1(TAPS(j),[(Filters(i)/FSover2 - WIDTH/FSover2) (Filters(i)/FSover2 + WIDTH/FSover2)]);
 		fn = strcat('Filter_BP_',num2str(Filters(i)),'_',num2str(TAPS(j)),'.dat');
 		fid = fopen(fn,'w');
 		for k = 1:TAPS(j)-1,
			fprintf(fid,'%6.10f,\n',b(k));
		end
		fprintf(fid,'%6.10f\n',b(length(b)));
		fclose(fid); 
		disp(fn);

 		b = fir1(TAPS(j)+1,[(Filters(i)/FSover2 - WIDTH/FSover2) (Filters(i)/FSover2 + WIDTH/FSover2)],'stop');
 		fn = strcat('Filter_BS_',num2str(Filters(i)),'_',num2str(TAPS(j)+1),'.dat');
 		fid = fopen(fn,'w');
 		for k = 1:TAPS(j),
			fprintf(fid,'%6.10f,\n',b(k));
		end
		fprintf(fid,'%6.10f\n',b(length(b)));
		fclose(fid); 
		disp(fn);

	end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?