📄 compute_equalizer.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Lab Assignment #1: frequency equalizer for a broadcast relay station %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%function [equ_taps_MAG,equ_taps_PHASE]=compute_equalizer(mag, phase);
%
% funci髇 que devuelve los coeficientes de dos filtros FIR utilizados, en cascada,
% para implementar un equalizador que responda a los valores de magnitud y fase
% presentados en los
% dos vectores de entrada de la funci髇:
% "mag" (respuesta en magnitud deseada)
% "phase" (respuesta de fase esperada)
%
% equ_taps_MAG: coeficientes del filtro corrector de magnitud
% equ_taps_PHASE: coeficientes del filtro corrector de fase
function [equ_taps_MAG,equ_taps_PHASE]=compute_equalizer(mag, phase);
%%%% DEFINICI覰 DE PAR罬ETROS %%%%
%magnitud equalizador fase
mag_allpass=ones(size(mag));
%fase equalizador magnitud
phase_cero=zeros(size(phase));
%conversi髇 magnitud: de dB a unidades naturales
mag_un=10.^(mag./20);
%conversi髇 fase: de radianes a grados
fase_gr = rad2deg(phase);
%eje de frecuencias (normalizado)
w=linspace(0,8e6,25);
w_n=pi*w/8e6;
W=w_n/pi;
%%%% FILTRO COMPONENTE MAGNITUD %%%%
Hmag=mag_un.*exp(j*phase_cero);
Ncoef=350;
B=FIR2(Ncoef,W,abs(Hmag));
equ_taps_MAG=B;
%%%% FILTRO COMPONENTE FASE %%%%
Hphase=mag_allpass.*exp(j*phase);
%obtenci髇 de los coeficientes del filtro y asignaci髇 a la variable de
%salida
hphase=ifft(Hphase,50);
equ_taps_FASE=hphase;
%obtenci髇 filtro
[Hphase f]=freqz(hphase);
%%%% REPRESENTACI覰 %%%%
%%%% CORRECTOR DE MAGNITUD %%%%
%comparativa magnitud
s.xunits='rad/sample';
s.plot='mag';
subplot(211);
hold on;
plot(W,mag,'go');
freqz(B);
title('Magnitude');
hold off;
subplot(212);
hold on;
title('Phase');
hold off;
figure;
%%%% CORRECTOR DE FASE %%%%
%definici髇 eje f_n
f_n=linspace(0,1,length(f));
%magnitud
s.xunits='rad/sample';
s.plot='mag';
subplot(211);
hold on;
freqzplot(Hphase,f,s);
title('Magnitude');
hold off;
%comparativa fase
subplot(212);
hold on;
plot(f_n,rad2deg(angle(Hphase))); % fase 揹ise馻da
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -