亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? er_iirlsinv_fir.m

?? dsp工具箱
?? M
字號:
function [hs,es] = er_iirlsinv(Gnum,Gden,Fnum,Fden)
% function [hs,es] = er_iirlsinv(Gnum,Gden,Fnum,Fden)
%   Function to find deterministic least squares inverse causal IIR filter coefficients
%   HS and return error vector in ES, to minimize ||f - conv(g,h)||.  Takes first filter 
%   transfer function numerator coefficients in GNUM and denominator coefficients in 
%   GDEN and second transfer function numerator coefficient vector in FNUM and denominator 
%   coefficient vector in FDEN.  
%   NOTE: Zero-padding is not needed for input vectors to equalize lengths over all vectors.
%
%   This function finds the filter, H(z) = D(z)X, where D(z) = A1(z)/(C1(z)B1(z)B2(z)), 
%   where C1(z) is the polynomial created from the poles of F(z) inside the unit
%   circle, B1(z) is constructed from the zeros of G(z) inside the unit circle, B2(z) is
%   created from the reciprocals of the zeros of G(z) outside the unit circle, and A1(z) 
%   is created from the poles of G(z) inside the unit circle.
%
%   X is FIR and found to minimize ||F(z) - (D(z)G(z))X||^2.  Uses
%   ER_FIRLSINV.M to compute this.
%
%   EXAMPLE:
%
%   >> [hs,es] = er_iirlsinv([1 2 3],[1 0 -1/4],[0 0 0 0 0 0 0 0 0 0 1],[1]);
%
%   Mean square error: 
%
%   Vmin =
%
%   1.431870069394124e-005
%
%   CONSTRAINTS:  G and F must be rational.
%
%   Author:  Evan Ruzanski, CU-Boulder, ECEN5632 MATLAB assignment, FA2004

% Long numerical format for accurate screen display
format long
warning off
m = 128;

% Split polynomials into causal/anticausal sections
[numc_g,numac_g] = poly_split(Gnum);
[denc_g,denac_g] = poly_split(Gden);
[numc_f,numac_f] = poly_split(Fnum);
[denc_f,denac_f] = poly_split(Fden);

% Create intermediate polynomial, D(z)
Dnum = denc_g;
Dden_temp = conv(denc_f,numc_g);
Dden = conv(Dden_temp,1./numac_g);

% Create intermediate polynomial, D(z)G(z)
DGnum = numac_g
DGden_temp = conv(denc_f,1./numac_g);
DGden = conv(DGden_temp,denac_g)

% Find X to minimize ||F(z) - (D(z)G(z))X||^2
[x,e] = er_firlsinv(DGnum,DGden,Fnum,Fden,m/2 -1,4*m); % Choose order arbitrarily
x = x(1).tf_complete;
clc

% Take inverse z-transform of D(z)
d = iztrans(Dnum,Dden,m);
d = d(m/2 + 1:length(d));

% Construct h(n)
h = conv(d,x);
h = h(1:m/2);

% Take inverse of F(z) and G(z)
f = iztrans(Fnum,Fden,m);
f = f(m/2 + 1:length(f));
g = iztrans(Gnum,Gden,m);
g = g(m/2 + 1:length(g));

%%%%%%%%%% GENERATE ERROR SEQUENCE %%%%%%%%%%
% Generate error sequence
f_temp = conv(g,h);
f_temp = f_temp(1:m/2);
e = f - f_temp;

% Generate V(h) = ||f - conv(g,h)||^2
disp('Mean square error: ');
Vmin = sum(e.^2)

%%%%%%%%%% PACK OUTPUT INTO STRUCT FOR PLOTTING %%%%%%%%%%
hs(1).tf_complete = h;
hs(2).tf_complete = 1;
es(1).tf_complete = e;function [plyc,plyac] = poly_split(plynm);
% TF_SPLIT Separates given polynomial into causal and anti-causal sections
z = roots(plynm);
pc = [];
pac = [];
for k = 1:length(z);
    if abs(z(k)) < 1
        pc = [pc; z(k)];
    else
        pac = [pac; z(k)];
    end
end
plyc = poly(pc);
plyac = poly(pac);
es(2).tf_complete = 1;

%%%%%%%%%% DECLARE LOCAL FUNCTIONS %%%%%%%%%%
function [plyc,plyac] = poly_split(plynm);
% TF_SPLIT Separates given polynomial into causal and anti-causal sections
z = roots(plynm);
pc = [];
pac = [];
for k = 1:length(z);
    if abs(z(k)) < 1
        pc = [pc; z(k)];
    else
        pac = [pac; z(k)];
    end
end
plyc = poly(pc);
plyac = poly(pac);

function h = iztrans(numd,dend,N);
% IZTRANS Take inverse z-transform of given transfer function

% STEP 1:  Decompose given transfer function into causal and anticausal
% sections (using partial fraction decomposition)

% Decompose given transfer function into causal and anticausal sections using partial fraction decomposition

%%%%% Create denominator polynomials %%%%%
lzc = shiftcheck(dend); % Strip leading/trailing zeros from shifts only
tzc = shiftcheck(fliplr(dend));
% lzc = 0;
% tzc = 0;
p = roots(dend); % Find poles
if (isempty(p) == 1) % Set (assumed causal) FIR case
    denc = dend;
    denac = [1];
    pc = [];
    pac = [];
elseif (lzc == tzc) % Set IIR case
    pm = abs(p); % Separate poles of causal, anticausal sections
    pc = [];
    pac = [];
    for k = 1:length(p)
        if ((pm(k) < 1)) % No poles at zero => trailing zero in denominator
            pc = [pc ; p(k)]; % Column vector of causal poles
        else
            pac = [pac ; p(k)]; % Column vector of anticausal poles
        end
    end
elseif (lzc ~= tzc)
    pm = abs(p); % Separate poles of causal, anticausal sections
    pc = [];
    pac = [];
    for k = 1:length(p)
        if ((pm(k) < 1) & (pm(k) ~= 0)) % No poles at zero => trailing zero in denominator
            pc = [pc ; p(k)] ;% Column vector of causal poles
        elseif (pm(k) ~= 0)
            pac = [pac ; p(k)]; % Column vector of anticausal poles
        end
    end
end
denc = poly(pc); % Causal section, ascending powers of z^(-n)
denac = poly(1./pac); % Anticausal section, ascending powers of z^(n)
% Ensure equal lengths
if (length(denc) > length(denac)) 
    denac = [denac zeros(1,length(denc)-length(denac))]; % Trailing zeros does not change tf
elseif (length(denac) > length(denc))
    denc = [denc zeros(1,length(denac)-length(denc))];
else
    denc = denc;
    denac = denac;
end

%%%%% Create numerator polynomials %%%%%
lzc = shiftcheck(numd); % Strip leading/trailing zeros from shifts only
tzc = shiftcheck(fliplr(numd));
if (lzc ~= tzc)
    numd2 = numd(lzc + 1:length(numd)-tzc);
else
    numd2 = numd;
end
if ((isempty(pc) == 1) & (isempty(pac) == 1)) % Check (assumed causal) FIR case 
    numc = numd2;
    numac = [1];
    firflag = 1;
elseif ((length(denc) == length(dend)) & isempty(pac) == 1) % All causal
    numc = numd2;
    numac = [1];
    firflag = 0;
elseif ((length(denac) == length(dend)) & isempty(pc) == 1) % All anticausal
    numac = fliplr(numd2);
    numc = [1];
    firflag = 0;
else % Non-causal
    % Create numerator polynomials using matrix equations from cross-multiplication of numerator, denominator
    lendc = length(denc);
    lendac = length(denac);
    D1(1:lendac,1:lendac) = 0; % Matrix anticausal section
    cnt = 1;
    ptr = lendac - 1;
    for k = 1:lendac
        for m = 1:cnt
            D1(k,m) = denac(ptr + m);
        end
        ptr = ptr - 1;
        cnt = cnt + 1;
    end
    D2(1:lendc,1:lendc) = 0; % Matrix causal section
    cnt = 1;
    ptr = 2;
    for k = 1:lendc
        for m = 1:cnt
            D2(k,lendc + 1 - m) = denc(ptr - m);
        end
        ptr = ptr + 1;
        cnt = cnt + 1;
    end
    D = D1 + D2;
    Dinvrs = inv(D);
    Ds = size(D);
    if length(numd2 < Ds(1))
        numd2 = [zeros(1,Ds(1) - length(numd2)),numd2];
    end
    if (Ds(1) == length(numd2))
        numc = (Dinvrs*numd2')';
    else
        numc = (Dinvrs*numd2(1:Ds(1))')';
    end
    numac = numc;
    firflag = 0;
end
% Compute impulse response
sample_plot = -N/2:N/2-1; % Plot vector
sample_n = -N/2+(tzc-lzc):N/2+(tzc-lzc)-1; % Impulse response vector
unit_pulse = (sample_n == 0);

% Check causality of response
% Check causal case
dc = shiftcheck(fliplr(denc));
denc = denc(1:length(denc) - dc);
if length(numc) == length(denc)
    cchk = numc./denc;
elseif length(numc) > length(denc)
    cchk = numc./[denc zeros(1,length(numc)-length(denc))];
elseif length(denc) > length(numc)
    cchk = [numc zeros(1,length(denc)-length(numc))]./denc;
end
cchk = sum(cchk.^2);

% Check anticausal case
dac = shiftcheck(fliplr(denac));
denac = denac(1:length(denac) - dac);
if length(numac) == length(denac)
    acchk = numac./denac;
elseif length(numac) > length(denac)
    acchk = numac./[denac zeros(1,length(numac)-length(denac))];
elseif length(denac) > length(numac)
    acchk = [numac zeros(1,length(denac)-length(numac))]./denac;
end
acchk = sum(acchk.^2);

if ((cchk ~= [1]) | (firflag == 1)) % Causal filtering
    x = unit_pulse;
    u = filter(numc,denc,x);
end

if (acchk ~= [1]) % Anti-causal filtering
    x = unit_pulse;
    x = fliplr(x);
    w = filter(numac,denac,x);
    w = fliplr(w);
end

if ((cchk ~= [1]) & (acchk ~= [1])) % Sum of parallel causal/anti-causal sections
    h = u + w;
elseif (acchk ~= [1])
    h = w;
else
    h = u;
end

function ct = shiftcheck(a)
% SHIFTCHECK Count number of leading zeros in input vector
alen = length(a);
epsilon = 10e-9;
% Count front zeros
ct = 0;
for k = 1:alen - 1
    if abs(a(k)) < epsilon
        ct = ct + 1;
        if abs(a(k + 1)) < epsilon
            ct = ct;
        elseif abs(a(k + 1)) > epsilon
            break
        end
    else
        break
    end
end

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区男女羞羞无遮挡| 成人激情小说乱人伦| 欧美一区二区三区男人的天堂| 中日韩免费视频中文字幕| 成人app网站| 成人av在线资源网| 欧美一区二区二区| 亚洲综合在线免费观看| 成人av电影在线播放| 2024国产精品| 国产精品一区在线| 精品日本一线二线三线不卡| 午夜av区久久| 亚洲码国产岛国毛片在线| 99热精品国产| 日本不卡在线视频| 中文字幕第一区| 欧美日韩一区二区三区在线看| 亚洲国产日产av| 欧美一区二区美女| 成人白浆超碰人人人人| 午夜私人影院久久久久| 久久综合色婷婷| av福利精品导航| 日日骚欧美日韩| 国产精品久久久久久久浪潮网站| 91啪九色porn原创视频在线观看| 风间由美中文字幕在线看视频国产欧美 | 久久久综合视频| 日韩一区二区三区精品视频| 国产精品一卡二卡在线观看| 亚洲成a人片在线不卡一二三区 | 久久色在线观看| 精品视频999| 99久久精品国产网站| 极品销魂美女一区二区三区| 一区二区视频在线| 亚洲欧美另类小说视频| 亚洲色欲色欲www| 一区二区三区视频在线看| 久久午夜免费电影| 91麻豆精品国产91久久久久| 在线观看亚洲a| 欧美色男人天堂| 一本色道综合亚洲| 日本韩国精品在线| 色婷婷久久一区二区三区麻豆| 国产精品一区二区不卡| 久久av中文字幕片| 日韩不卡一二三区| 三级精品在线观看| 日本va欧美va瓶| 日韩av一区二区三区| 久久精品国产亚洲5555| 久久精品国产一区二区三 | 91麻豆自制传媒国产之光| 99国产精品国产精品毛片| 在线观看免费视频综合| 在线欧美一区二区| 欧美日韩一区二区三区在线| 欧美美女视频在线观看| 精品国产91乱码一区二区三区 | 一本大道久久a久久综合婷婷| 在线免费亚洲电影| 精品奇米国产一区二区三区| 国产欧美精品区一区二区三区| 亚洲欧美日韩小说| 久久66热re国产| 99re66热这里只有精品3直播| 欧美综合亚洲图片综合区| 日韩一区二区三区在线| 亚洲人123区| 毛片av中文字幕一区二区| 成人在线综合网| 4438x成人网最大色成网站| 欧美国产综合色视频| 日本伊人精品一区二区三区观看方式| 国内精品国产三级国产a久久| 在线视频中文字幕一区二区| 久久婷婷久久一区二区三区| 午夜精品福利视频网站| 91在线你懂得| 国产欧美综合色| 精品一区二区三区在线播放视频| 色综合色狠狠综合色| 中文乱码免费一区二区| 麻豆一区二区三区| 欧美精品在欧美一区二区少妇| 中文字幕亚洲在| 国产一区 二区| 日韩精品一区二区三区视频播放| 亚洲欧美日韩精品久久久久| 国产91丝袜在线播放| 久久久久久久av麻豆果冻| 久久精品久久99精品久久| 欧美久久久久久久久| 亚洲第一成人在线| 欧美一区二区三区四区五区| 手机精品视频在线观看| 91精品国产综合久久香蕉的特点 | 日韩欧美国产麻豆| 国产精品系列在线播放| 国产精品麻豆欧美日韩ww| 成人动漫精品一区二区| 亚洲精品日日夜夜| 884aa四虎影成人精品一区| 久久综合综合久久综合| 久久综合资源网| 91麻豆高清视频| 天天av天天翘天天综合网色鬼国产| 4438亚洲最大| 56国语精品自产拍在线观看| 国产福利精品导航| 亚洲精品成人悠悠色影视| 91麻豆精品久久久久蜜臀| 高清在线观看日韩| 日韩av高清在线观看| 亚洲最新视频在线观看| 欧美性一二三区| 另类小说一区二区三区| 国产精品第四页| caoporm超碰国产精品| 一区二区三区高清不卡| 欧美电视剧在线看免费| 99久久婷婷国产综合精品电影| 一区二区三区四区国产精品| 欧美精品色一区二区三区| 国产一区二区福利| 亚洲一区在线观看网站| 欧美在线高清视频| 91丝袜美腿高跟国产极品老师 | 在线观看国产一区二区| 国产高清在线精品| 日韩主播视频在线| 国产精品你懂的| 欧美日韩你懂的| 色999日韩国产欧美一区二区| 日产国产欧美视频一区精品| 亚洲视频在线一区| 欧美大黄免费观看| 日韩精品一区二区三区视频播放| 色偷偷成人一区二区三区91 | 日韩va亚洲va欧美va久久| 国产精品亚洲午夜一区二区三区| 亚洲一区二区在线播放相泽| 国产亚洲精品aa| 最新久久zyz资源站| 亚洲欧美日韩久久精品| 国产精品天干天干在线综合| 欧美mv和日韩mv国产网站| 欧美www视频| 亚洲精品一区二区精华| 日韩欧美第一区| 日韩欧美资源站| 中文字幕一区二区三| 久久女同精品一区二区| 欧美r级电影在线观看| 国产精品视频一二三区| 18欧美乱大交hd1984| 亚洲美女免费在线| 亚洲在线成人精品| 国产一区激情在线| 成人h版在线观看| 99精品欧美一区二区蜜桃免费| 91视频www| 久久影音资源网| 成人欧美一区二区三区在线播放| 亚洲人成在线播放网站岛国| 一区二区三区在线免费观看| 亚洲成人www| 欧美aaa在线| 色妞www精品视频| 欧美va亚洲va| 国产欧美日韩精品a在线观看| 亚洲欧洲精品天堂一级| 日韩高清欧美激情| av一二三不卡影片| 2024国产精品| 亚洲不卡一区二区三区| 国产成人综合网站| 欧美不卡在线视频| 午夜亚洲国产au精品一区二区| 国产自产高清不卡| 在线看日韩精品电影| 一色屋精品亚洲香蕉网站| 蜜桃视频免费观看一区| 在线视频欧美精品| 一区二区三区电影在线播| 国产成人丝袜美腿| 欧美videossexotv100| 天天综合色天天综合色h| 国产成+人+日韩+欧美+亚洲| 91 com成人网| 亚洲老妇xxxxxx| 91美女在线视频| 中文字幕第一区二区| 国产精品一区二区三区99| 久久久www成人免费无遮挡大片| 免费人成精品欧美精品| 欧美性色aⅴ视频一区日韩精品|