国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Farrow結(jié)構(gòu)的三階拉格朗日插值matlab及FPGA實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了Farrow結(jié)構(gòu)的三階拉格朗日插值matlab及FPGA實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

說(shuō)明:本文為學(xué)習(xí)筆記,錯(cuò)誤不可避免,全當(dāng)交流。

以單頻點(diǎn)信號(hào)為例,說(shuō)明三階拉格朗日插值的實(shí)現(xiàn)方法。

實(shí)現(xiàn)結(jié)構(gòu)

假設(shè)輸入序列為:X(n)=[…,x(-1),x(0),x(1),x(2)]

Farrow結(jié)構(gòu)的三階拉格朗日插值matlab及FPGA實(shí)現(xiàn),matlab,開發(fā)語(yǔ)言,fpga開發(fā),筆記

以一個(gè)x(1)…x(10)的序列為例,說(shuō)明x的計(jì)算與插值過(guò)程。

X的計(jì)算如圖所示,計(jì)算出x按照上述結(jié)構(gòu)即可實(shí)現(xiàn)插值。

Farrow結(jié)構(gòu)的三階拉格朗日插值matlab及FPGA實(shí)現(xiàn),matlab,開發(fā)語(yǔ)言,fpga開發(fā),筆記

matlab實(shí)現(xiàn)

% farrow結(jié)構(gòu)三階拉格朗日插值的算法
% ?y(k)=((c0*uk+c1)*uk+c2)*uk+c3;
% 其中uk為分?jǐn)?shù)間隔,C為濾波結(jié)果,非常適合用fpga實(shí)現(xiàn)。
% 可用于任意倍率(插值或抽?。┑牟蓸勇首儞Q。
?close all; clear all;

fs = 1.5e3;
fc = 1e2;
t = 0:1/fs:1/fc;
x = cos(2*pi*fc*t);
% 系數(shù)
v0=[-1/6 ?1/2 ? -1/2 ?1/6];
v1=[1/2 ? -1 ? ?1/2 ? ?0 ];
v2=[-1/3 ?-1/2 ? 1 ? -1/6];
v3=[0 ? ? ?1 ? ? 0 ? ? 0 ];

?
I=3; % 插值因子
D=2; % 抽取因子
step_factor=D/I;% 步進(jìn)因子
k=1;%由第二個(gè)點(diǎn)開始,第一個(gè)點(diǎn)相等
lengthx=length(x);
xbuf=zeros(4,1);
ukbuf=zeros(1,round(length(x)*I/D));

yy4_1buf=zeros(1,round(I/D*lengthx+4));
yy4_2buf=zeros(1,round(I/D*lengthx+4));
yy4_3buf=zeros(1,round(I/D*lengthx+4));
yy4_4buf=zeros(1,round(I/D*lengthx+4));

yy3_1buf=zeros(1,round(I/D*lengthx+4));
yy3_2buf=zeros(1,round(I/D*lengthx+4));
yy3_3buf=zeros(1,round(I/D*lengthx+4));
pha=0;
x=[x 0 0];%補(bǔ)充0
for i=1:1:length(x) ?%輸入序列
? ? %--序列移位
? ? xbuf(4)=xbuf(3);
? ? xbuf(3)=xbuf(2);
? ? xbuf(2)=xbuf(1);
? ? xbuf(1)=x(i);
? ??
? ? %--濾波
? ? c0=xbuf(1)*v0(1)+xbuf(2)*v0(2)+xbuf(3)*v0(3)+xbuf(4)*v0(4);
? ? c1=xbuf(1)*v1(1)+xbuf(2)*v1(2)+xbuf(3)*v1(3)+xbuf(4)*v1(4);
? ? c2=xbuf(1)*v2(1)+xbuf(2)*v2(2)+xbuf(3)*v2(3)+xbuf(4)*v2(4);
? ? c3=xbuf(1)*v3(1)+xbuf(2)*v3(2)+xbuf(3)*v3(3)+xbuf(4)*v3(4);
? ? %起始點(diǎn)重合
? ? if(i==2) ??
? ? ? ? y(1)=x(1);
? ? end
? ? %進(jìn)去兩個(gè)數(shù)據(jù)后開始插值第一個(gè)點(diǎn)
? ? if(i>2)
? ? pha = pha + 1;
? ? while pha >= step_factor
? ? ? ? ? ??
? ? ? ? ? ? pha = pha - step_factor; % 更新輸出采樣點(diǎn)后的相位
? ? ? ? ? ? uk =pha ;
? ? ? ? ukbuf(k)=uk;

? ? ? ? yy4_1=(c0*uk);%1
? ? ? ? yy4_1buf(k)=yy4_1;
? ? ? ? yy4_2=(yy4_1);
? ? ? ? yy4_2buf(k)=yy4_2;
? ? ? ? yy4_3=(yy4_2+c1);%2
? ? ? ? yy4_3buf(k)=yy4_3;
? ? ? ? yy4_4=(yy4_3);
? ? ? ? yy4_4buf(k)=yy4_4;
? ? ? ? yy4=yy4_4;
? ? ? ??

? ? ? ? yy3_1=(yy4*uk);%3
? ? ? ? yy3_1buf(k)=yy3_1;
? ? ? ? yy3_2=(yy3_1);
? ? ? ? yy3_2buf(k)=yy3_2;
? ? ? ? yy3_3=(yy3_2+c2);%4
? ? ? ? yy3_3buf(k)=yy3_3;
? ? ? ? yy3_4=(yy3_3);
? ? ? ? yy3=yy3_4;
? ? ? ??
? ? ? ? yy2=((yy3*uk+c3));%5
? ? ? ? k = k + 1; % 更新輸出索引
? ? ? ? y(k)=yy2;
? ? ? ? m=y(k);
? ? ? ??
? ? ? ??
? ? end
? ? end
end


y=y(1:k-1);
t1=(0:length(y)-1)/(fs*I/D);
t = 0:1/fs:(1/fs)*17;
plot(t,x,'--*',t1,y,'--o');


figure(2);
subplot(211);%(x=行,列,計(jì)數(shù))
NFFT=length(x);
FS=48*10^3;
signal_I_window =x'.*hamming(NFFT);
signal_I_window_FFT = fft(signal_I_window,NFFT)/NFFT;
plot((-0.5:1/NFFT:0.5-1/NFFT)*(FS),20*log10(fftshift(abs(signal_I_window_FFT(1:NFFT)))));
title('ContData ?');

subplot(212);%(x=行,列,計(jì)數(shù))
NFFT=length(y);
FS=48*10^3*I/D;
signal_I_window =y'.*hamming(NFFT);
signal_I_window_FFT = fft(signal_I_window,NFFT)/NFFT;
plot((-0.5:1/NFFT:0.5-1/NFFT)*(FS),20*log10(fftshift(abs(signal_I_window_FFT(1:NFFT)))));
title('ContData ?');

執(zhí)行結(jié)果

Farrow結(jié)構(gòu)的三階拉格朗日插值matlab及FPGA實(shí)現(xiàn),matlab,開發(fā)語(yǔ)言,fpga開發(fā),筆記

FPGA實(shí)現(xiàn)

實(shí)現(xiàn)結(jié)構(gòu)與matlab相同,fir_core實(shí)現(xiàn)濾波器,mult_parallel實(shí)現(xiàn)uk的乘加。

Farrow結(jié)構(gòu)的三階拉格朗日插值matlab及FPGA實(shí)現(xiàn),matlab,開發(fā)語(yǔ)言,fpga開發(fā),筆記

C0濾波器的實(shí)現(xiàn)

`timescale 1ns / 1ps

//

// Company:

// Engineer:

//

// Create Date: 2023/06/25 08:45:58

// Design Name:

// Module Name: fir4_core

// Project Name:

// Target Devices:

// Tool Versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//


?

module fir4_core#(

parameter ? ? ? ? ? ? ? ? ? WIDTH ? = 16

)(

input i_sys_clk,

input i_reset_h,

input ? ? ? [2*WIDTH-1:0] ? din,//sfix16_en13 ?IQ·

output ? ? ?[2*WIDTH-1:0] ? dout


?

? ? );

? ?


?

wire ? ? ? ?[15:0] ? ? ? ? ? ? ?Fn_mem ? ? ?[3 : 0];//sfix16_14

// assign ? ? ? Fn_mem[0] ? ? ? ? ? = ? 16'H1555;

// assign ? ? ? Fn_mem[1] ? ? ? ? ? = ? 16'HC000;

// assign ? ? ? Fn_mem[2] ? ? ? ? ? = ? 16'H4000;

// assign ? ? ? Fn_mem[3] ? ? ? ? ? = ? 16'HEAAB;

assign ? ? ?Fn_mem[0] ? ? ? ? ? = ? 16'HEAAB;

assign ? ? ?Fn_mem[1] ? ? ? ? ? = ? 16'H4000;

assign ? ? ?Fn_mem[2] ? ? ? ? ? = ? 16'HC000;

assign ? ? ?Fn_mem[3] ? ? ? ? ? = ? 16'H1555;

reg signed ? ? ?[2*WIDTH-1:0] ? ? ? Xn_mem ? ? ? ? ?[3 : 0];

wire ? ?signed ? ? ?[31:0] ? ? ? ? ? ? ?Mult_i_mem ? ? ?[3 : 0];//sfix32_en27

wire ? ?signed ? ? ?[31:0] ? ? ? ? ? ? ?Mult_q_mem ? ? ?[3 : 0];//sfix16_en13 MULTI sfix16_en14

wire ? ?signed ?[33:0] ? ? ? ? ?Sumi_mem1 ? ? ? ? ? ; //sfix34_en27


?

wire ? ?signed ?[33:0] ? ? ? ? ?Sumq_mem1 ? ? ? ? ? ;

// assign ? ? ? Xn_mem[0] ? ? ? ? ? = ? i_reset_h ? 32'd0 : din;

// genvar ? n;

// generate

? ? // for (n=0; n < 6; n=n+1)begin: delayN

? ? ? ? // shift_ram_N

? ? ? ? ? ? // inst1_shift_ram_N(

? ? ? ? ? ? // .A ? ? ? ? ? ? ? ? ? (0 ? ? ? ? ?),

? ? ? ? ? ? // .D ? ? ? ? ? ? ? ? ? ({Xn_mem[2],Xn_mem[1],Xn_mem[0]}),

? ? ? ? ? ? // .SCLR ? ? ? ? ? ? ? ?(i_reset_h ? ? ? ? ?),

? ? ? ? ? ? // .CLK ? ? ? ? ? ? ? ?(i_sys_clk ? ? ? ? ? ?),

? ? ? ? ? ? // .Q ? ? ? ? ? ? ? ? ? ({Xn_mem[3],Xn_mem[2],Xn_mem[1]})

? ? ? ? ? ? // );

always @(posedge i_sys_clk) begin

if(i_reset_h)begin

? ? Xn_mem[0] <= 0 ;

? ? Xn_mem[1] <= 0 ;

? ? Xn_mem[2] <= 0 ;

? ? Xn_mem[3] <= 0 ;

end

else begin

? ? Xn_mem[0] <= din;

? ? Xn_mem[1] <= Xn_mem[0] ;

? ? Xn_mem[2] <= Xn_mem[1] ;

? ? Xn_mem[3] <= Xn_mem[2] ;

end


?

end

? ? // end

// endgenerate

genvar ?n1;

generate

? ? for (n1=0; n1 <= 3; n1=n1+1)begin: mult_gen

? ? ? ? mult_gen_16_16

? ? ? ? ? ? insti_mult_gen_16_16(

? ? ? ? ? ? .CLK ? ? ? ? ? ? ? ?(i_sys_clk ? ? ? ? ? ?),

? ? ? ? ? ? .A ? ? ? ? ? ? ? ? ?(Xn_mem[n1][15:0]), //(15 DOWNTO 0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? .B ? ? ? ? ? ? ? ? ?(Fn_mem[n1] ? ? ), ?//(15 DOWNTO 0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? .P ? ? ? ? ? ? ? ? ?(Mult_i_mem[n1] ) ? //(31 DOWNTO 0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? );

? ? ? ? mult_gen_16_16

? ? ? ? ? ? instq_mult_gen_16_16(

? ? ? ? ? ? .CLK ? ? ? ? ? ? ? ?(i_sys_clk ? ? ? ? ? ?),

? ? ? ? ? ? .A ? ? ? ? ? ? ? ? ?(Xn_mem[n1][31:16]),//(15 DOWNTO 0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? .B ? ? ? ? ? ? ? ? ?(Fn_mem[n1] ? ? ), ?//(15 DOWNTO 0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? .P ? ? ? ? ? ? ? ? ?(Mult_q_mem[n1] ) ? //(31 DOWNTO 0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? );

? ? end

endgenerate

wire ? ?j1;

assign ? j1=0;

? ? ? ? Sum_4Data#(

? ? ? ? ? ? .WIDTH ? ? ? ? ? ? ?(32 ? ? ? ? ? ? ? ? )

? ? ? ? ? ? )

? ? ? ? ? ? insti_Sum_4Data(

? ? ? ? ? ? .clk ? ? ? ? ? ? ? ?(i_sys_clk ? ? ? ? ? ? ? ? ?),

? ? ? ? ? ? .rst ? ? ? ? ? ? ? ?(i_reset_h ? ? ? ? ? ? ? ? ?),

? ? ? ? ? ? .din_1 ? ? ? ? ? ? ?(Mult_i_mem[0] ?),//32bit

? ? ? ? ? ? .din_2 ? ? ? ? ? ? ?(Mult_i_mem[0+1] ? ?),

? ? ? ? ? ? .din_3 ? ? ? ? ? ? ?(Mult_i_mem[0+2] ? ?),

? ? ? ? ? ? .din_4 ? ? ? ? ? ? ?(Mult_i_mem[0+3] ? ?),

? ? ? ? ? ? .dout ? ? ? ? ? ? ? (Sumi_mem1 ? ? ?) //34bit

? ? ? ? );

? ? ? ? Sum_4Data#(

? ? ? ? ? ? .WIDTH ? ? ? ? ? ? ?(32 ? ? ? ? ? ? ? ? )

? ? ? ? ? ? )

? ? ? ? ? ? instq_Sum_4Data(

? ? ? ? ? ? .clk ? ? ? ? ? ? ? ?(i_sys_clk ? ? ? ? ? ? ? ? ?),

? ? ? ? ? ? .rst ? ? ? ? ? ? ? ?(i_reset_h ? ? ? ? ? ? ? ? ?),

? ? ? ? ? ? .din_1 ? ? ? ? ? ? ?(Mult_q_mem[0] ?),//32bit

? ? ? ? ? ? .din_2 ? ? ? ? ? ? ?(Mult_q_mem[0+1] ? ?),

? ? ? ? ? ? .din_3 ? ? ? ? ? ? ?(Mult_q_mem[0+2] ? ?),

? ? ? ? ? ? .din_4 ? ? ? ? ? ? ?(Mult_q_mem[0+3] ? ?),

? ? ? ? ? ? .dout ? ? ? ? ? ? ? (Sumq_mem1 ? ? ?) //34bit

? ? ? ? );

? ? ? ?

assign ? ? ?dout[15:0] ? ? ? ? ?= ? Sumi_mem1[30 :15]; ?//sfix16_en13

assign ? ? ?dout[31:16] ? ? ? ? = ? Sumq_mem1[30: 15]; ?

endmodule文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-819750.html

mult_parallel模塊的實(shí)現(xiàn)

`timescale 1ns / 1ps

//

// Company:

// Engineer:

//

// Create Date: 2023/06/26 15:17:47

// Design Name:

// Module Name: mult_parallel

// Project Name:

// Target Devices:

// Tool Versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//


?

module mult_parallel(

input i_sys_clk,

input i_reset_h,

input signed [15:0] ?i_fir_c0,

input signed [15:0] ?i_fir_c1,

input signed [15:0] ?i_fir_c2,

input signed [15:0] ?i_fir_c3,

input signed [15:0] ?i_uk ? ?,

output signed [15:0] o_mult_parallel,

output ? ? ? ? ? ? ? o_uk_valid ? ? ?

? ? );

wire signed [31 : 0] w_mult_P_c0;

wire signed [15 : 0] w_mult_P16_c0;

wire signed [31 : 0] w_mult_P_c1;

wire signed [15 : 0] w_mult_P16_c1;

wire signed [31 : 0] w_mult_P_c2;

wire signed [15 : 0] w_mult_P16_c2;

wire signed [16 : 0] r_add_y1;

wire signed [16 : 0] r_add_y2;

wire signed [16 : 0] r_add_y3;


?

wire signed [15:0] ?r_fir_c1_d4;

wire signed [15:0] ?r_fir_c2_d9;

wire signed [15:0] ?r_fir_c3_d14;

wire signed [15:0] ?r_uk_d5;

wire signed [15:0] ?r_uk_d10;

assign ? ?w_mult_P16_c0 = w_mult_P_c0[29:14];

assign ? ?w_mult_P16_c1 = w_mult_P_c1[29:14];

assign ? ?w_mult_P16_c2 = w_mult_P_c2[29:14];

c_shift_ram_0 c_shift_ram_c0_inst (

? .A ? ( ?6'd2 ? ? ? ? ? ? ?), ? ? ?// input wire [5 : 0] A

? .D ? ( ?i_fir_c1 ? ? ? ), ? ? ?// input wire [15 : 0] D

? .CLK ( ?i_sys_clk ? ?), ? ? ?// input wire CLK

? .CE ?( ?1'b1 ), ? ?// input wire CE

? .Q ? ( ?r_fir_c1_d4 ?) ? ? ? // output wire [15 : 0] Q

);

c_shift_ram_0 c_shift_ram_uk_c0_inst (

? .A ? ( ?6'd3 ? ? ? ? ? ? ?), ? ? ?// input wire [5 : 0] A

? .D ? ( ?i_uk ? ? ? ), ? ? ?// input wire [15 : 0] D

? .CLK ( ?i_sys_clk ? ?), ? ? ?// input wire CLK

? .CE ?( ?1'b1 ), ? ?// input wire CE

? .Q ? ( ?r_uk_d5 ?) ? ? ? // output wire [15 : 0] Q

);

c_shift_ram_0 c_shift_ram_c1_inst (

? .A ? ( ?6'd7 ? ? ? ? ? ? ?), ? ? ?// input wire [5 : 0] A

? .D ? ( ?i_fir_c2 ? ? ? ), ? ? ?// input wire [15 : 0] D

? .CLK ( ?i_sys_clk ? ?), ? ? ?// input wire CLK

? .CE ?( ?1'b1 ), ? ?// input wire CE

? .Q ? ( ?r_fir_c2_d9 ?) ? ? ? // output wire [15 : 0] Q

);

c_shift_ram_0 c_shift_ram_uk_c1_inst (

? .A ? ( ?6'd8 ? ? ? ? ? ? ?), ? ? ?// input wire [5 : 0] A

? .D ? ( ?i_uk ? ? ? ), ? ? ?// input wire [15 : 0] D

? .CLK ( ?i_sys_clk ? ?), ? ? ?// input wire CLK

? .CE ?( ?1'b1 ), ? ?// input wire CE

? .Q ? ( ?r_uk_d10 ?) ? ? ? // output wire [15 : 0] Q

);

c_shift_ram_0 c_shift_ram_c2_inst (

? .A ? ( ?6'd12 ? ? ? ? ? ? ?), ? ? ?// input wire [5 : 0] A

? .D ? ( ?i_fir_c3 ? ? ? ), ? ? ?// input wire [15 : 0] D

? .CLK ( ?i_sys_clk ? ?), ? ? ?// input wire CLK

? .CE ?( ?1'b1 ), ? ?// input wire CE

? .Q ? ( ?r_fir_c3_d14 ?) ? ? ? // output wire [15 : 0] Q

);

// always @(posedge i_sys_clk)

// begin

? ? // r_fir_c1_d1 <= i_fir_c1 ? ;

? ? // r_fir_c1_d2 <= r_fir_c1_d1;

? ? ? ? // r_fir_c1_d3 <= r_fir_c1_d2;

? ? ? ? // r_fir_c1_d4 <= r_fir_c1_d3;

? ? ? ? ? ? ? ? ?

// end

//-----------c0

mult_gen_16_16 mult_gen_c0_inst (

? .CLK( ?i_sys_clk ? ? ?), ?// input wire CLK

? .A ?( ?i_uk ? ? ? ? ? ), ? ? ?// input wire [15 : 0] A

? .B ?( ?i_fir_c0 ? ? ? ), ? ? ?// input wire [15 : 0] B

? .P ?( ?w_mult_P_c0 ? ?) ? ? ?// output wire [31 : 0] P

);

c_addsub_16_16 c_addsub_16_16_c0 (

? .A ? ?( ?w_mult_P_c0[29:14] ? ?), ? ? ?// input wire [15 : 0] A

? .B ? ?( ?r_fir_c1_d4 ? ?), ? ? ?// input wire [15 : 0] B

? .CLK ?( ?i_sys_clk ? ), ?// input wire CLK

? .CE ? ( ?1'b1 ? ? ? ?), ? ?// input wire CE

? .S ? ?( ?r_add_y1 ? ?) ? ? ?// output wire [16 : 0] S

);

//----------c1

mult_gen_16_16 mult_gen_c1_inst (

? .CLK( ?i_sys_clk ? ? ? ? ? ), ?// input wire CLK

? .A ?( ?r_uk_d5 ? ? ? ? ), ? ? ?// input wire [15 : 0] A

? .B ?( ?r_add_y1[15:0] ? ? ?), ? ? ?// input wire [15 : 0] B

? .P ?( ?w_mult_P_c1 ? ? ? ? ) ? ? ?// output wire [31 : 0] P

);

c_addsub_16_16 c_addsub_16_16_c1 (

? .A ? ?( ?w_mult_P_c1[29:14] ? ? ? ?), ? ? ?// input wire [15 : 0] A

? .B ? ?( ?r_fir_c2_d9 ? ), ? ? ?// input wire [15 : 0] B

? .CLK ?( ?i_sys_clk ? ), ?// input wire CLK

? .CE ? ( ?1'b1 ? ? ? ?), ? ?// input wire CE

? .S ? ?( ?r_add_y2 ? ?) ? ? ?// output wire [16 : 0] S

);

mult_gen_16_16 mult_gen_c2_inst (

? .CLK( ?i_sys_clk ?), ?// input wire CLK

? .A ?( ?r_uk_d10 ? ?), ? ? ?// input wire [15 : 0] A

? .B ?( ?r_add_y2[15:0] ? ?), ? ? ?// input wire [15 : 0] B

? .P ?( ?w_mult_P_c2 ? ?) ? ? ?// output wire [31 : 0] P

);

c_addsub_16_16 c_addsub_16_16_c2 (

? .A ? ?( ?w_mult_P_c2[29:14] ? ?), ? ? ?// input wire [15 : 0] A

? .B ? ?( ?r_fir_c3_d14 ? ?), ? ? ?// input wire [15 : 0] B

? .CLK ?( ?i_sys_clk ? ), ?// input wire CLK

? .CE ? ( ?1'b1 ? ? ? ?), ? ?// input wire CE

? .S ? ?( ?r_add_y3 ? ?) ? ? ?// output wire [16 : 0] S

);

assign ? o_mult_parallel = r_add_y3[16:1];

endmodule

到了這里,關(guān)于Farrow結(jié)構(gòu)的三階拉格朗日插值matlab及FPGA實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Lagrange插值法實(shí)驗(yàn):求拉格朗日插值多項(xiàng)式和對(duì)應(yīng)x的近似值matlab實(shí)現(xiàn)(內(nèi)附代碼)

    Lagrange插值法實(shí)驗(yàn):求拉格朗日插值多項(xiàng)式和對(duì)應(yīng)x的近似值matlab實(shí)現(xiàn)(內(nèi)附代碼)

    已知函數(shù)表: 求出Lagrange 插值多項(xiàng)式,并計(jì)算x=1.2處的y的近似值。 求解多項(xiàng)式: 求解近似值: 請(qǐng)輸入橫坐標(biāo)向量X: X=[1, 2, 4, 5] 請(qǐng)輸入縱坐標(biāo)向量Y: Y=[16,12,8,9] 基函數(shù)為: q1(x)=(11 x^2)/12 - (19 x)/6 - x^3/12 + 10/3 q2(x)=(29 x)/6 - (5 x^2)/3 + x^3/6 - 10/3 q3(x)=(4 x^2)/3 - (17 x)/6 - x^3/6 + 5/3 q4(x)=

    2024年02月08日
    瀏覽(22)
  • 牛頓插值法、拉格朗日插值法、三次插值、牛頓插值多項(xiàng)式、拉格朗日插值多項(xiàng)式

    牛頓插值法、拉格朗日插值法、三次插值、牛頓插值多項(xiàng)式、拉格朗日插值多項(xiàng)式

    兩點(diǎn)式線性插值 調(diào)用Matlab庫(kù)函數(shù) 拉格朗日二次插值: 牛頓二次插值 結(jié)果分析:通過(guò)對(duì)比不同插值方法,可以看到在一定范圍內(nèi)(高次會(huì)出現(xiàn)龍格現(xiàn)象),插值次數(shù)越高,截?cái)嗾`差越?。ú逯到Y(jié)果越接近于真實(shí)函數(shù)值);同時(shí),對(duì)于相同次數(shù)的插值,由于不同的插值方法它們

    2024年02月11日
    瀏覽(31)
  • 淺談拉格朗日插值法

    淺談拉格朗日插值法

    好像FFT要用到,所以就學(xué)習(xí)一手 版題 其意義在于: 理解一下: 就是把一個(gè)足球踢出去,假設(shè)球始終在一個(gè)平面上飛行,它的軌跡就可以抽象為 (f(x)) (假設(shè)這個(gè)函數(shù)至于時(shí)間有關(guān)) 現(xiàn)在你有一些照片,所以你可以得到某幾個(gè)時(shí)間點(diǎn)球的位置,想要還原出這個(gè)函數(shù) (f(x)) 的

    2023年04月25日
    瀏覽(26)
  • 解讀 拉格朗日插值法python,保你學(xué)明白

    什么是插值法 插值法是一種數(shù)學(xué)方法,用于在已知數(shù)據(jù)點(diǎn)(離散數(shù)據(jù))之間插入數(shù)據(jù),以生成連續(xù)的函數(shù)曲線。 插值法可以用于確定一個(gè)未知數(shù)據(jù)點(diǎn)的值,并簡(jiǎn)化復(fù)雜的數(shù)學(xué)計(jì)算過(guò)程。 插值法的應(yīng)用廣泛,如統(tǒng)計(jì)學(xué)、工程學(xué)、科學(xué)研究等領(lǐng)域。 拉格朗日插值法的原理 格朗

    2024年02月08日
    瀏覽(20)
  • 數(shù)值分析:拉格朗日插值法筆記以及C++代碼實(shí)現(xiàn)

    數(shù)值分析:拉格朗日插值法筆記以及C++代碼實(shí)現(xiàn)

    插值需求的誕生: 如何通過(guò)已知數(shù)據(jù)得到函數(shù)的近似解析表達(dá)式,從而獲得更多的有用數(shù)據(jù)。 在實(shí)際應(yīng)用中常常需要根據(jù)已知的函數(shù)點(diǎn)進(jìn)行數(shù)據(jù)、模型的處理和分析,而有時(shí)候現(xiàn)有的數(shù)據(jù)是極少的,不足以支撐分析的進(jìn)行,這時(shí)就需要使用一些數(shù)學(xué)的方法“模擬產(chǎn)生”一些

    2024年02月12日
    瀏覽(13)
  • PLC拉格朗日插值(SCL、ST計(jì)算源代碼)

    PLC拉格朗日插值(SCL、ST計(jì)算源代碼)

    插值是對(duì)函數(shù)進(jìn)行近似的基本方法,這篇博客主要介紹常用的拉格朗日插值法, Lagrange插值法不太清楚的同學(xué),可以看看數(shù)值計(jì)算和分析類書籍,網(wǎng)上有很多C語(yǔ)言的拉格朗日插值算法,這里我們主要給出在PLC里利用ST,SCL語(yǔ)言完成拉格朗日插值計(jì)算。 1、拉格朗日插值FC ?插值

    2024年02月14日
    瀏覽(50)
  • 【數(shù)值分析】拉格朗日插值法與牛頓插值法的C++實(shí)現(xiàn)

    【數(shù)值分析】拉格朗日插值法與牛頓插值法的C++實(shí)現(xiàn)

    設(shè)函數(shù) y = f ( x ) displaystylecolor{red}y=f(x) y = f ( x ) 在區(qū)間 [ a , b ] displaystylecolor{red}[a,b] [ a , b ] 上有定義,且 a ≤ x 0 x 1 ? x n ≤ b displaystylecolor{red}a ≤x_0x_1dotsx_n ≤b a ≤ x 0 ? x 1 ? ? x n ? ≤ b ,已知在 x 0 … x n displaystylecolor{red}x_0dots x_n x 0 ? … x n ? 點(diǎn)處的值分別為

    2024年02月06日
    瀏覽(19)
  • n個(gè)節(jié)點(diǎn)互異的拉格朗日插值基函數(shù)之和等于一證明

    n個(gè)節(jié)點(diǎn)互異的拉格朗日插值基函數(shù)之和等于一證明

    ?拉格朗日插值公式?? 要證明的?,其左邊拉格朗日基函數(shù)的的,也就是說(shuō)方程用來(lái)插值的每個(gè)離散點(diǎn)都是,那么對(duì)于每個(gè)點(diǎn)插入點(diǎn)都滿足。那么顯然,不考慮其他性質(zhì),Ln拉格朗日插值公式是一個(gè)n-1次多項(xiàng)式,x最高次數(shù)是n個(gè)插值點(diǎn)的數(shù)目減一,但是它經(jīng)過(guò)n個(gè)值為1的點(diǎn),也就

    2024年02月11日
    瀏覽(25)
  • 計(jì)算機(jī)圖形學(xué)中的曲線問(wèn)題——拉格朗日插值曲線繪制實(shí)踐

    計(jì)算機(jī)圖形學(xué)中的曲線問(wèn)題——拉格朗日插值曲線繪制實(shí)踐

    限于篇幅,我們將在這篇文章中介紹拉格朗日插值曲線繪制實(shí)踐,主文章鏈接: GGN_2015 計(jì)算機(jī)圖形學(xué)中的曲線問(wèn)題 在主文章中我們已經(jīng)介紹了拉格朗日插值函數(shù)的繪制方法。給定一個(gè)函數(shù)必須通過(guò)的點(diǎn)的集合,保證任意兩點(diǎn) x x x 指不同,我們就能構(gòu)造出一條拉格朗日插值函

    2024年02月14日
    瀏覽(29)
  • 2、瑞麗-伯納德對(duì)流的拉格朗日擬序結(jié)構(gòu)(FTLE場(chǎng)結(jié)果對(duì)比)

    2、瑞麗-伯納德對(duì)流的拉格朗日擬序結(jié)構(gòu)(FTLE場(chǎng)結(jié)果對(duì)比)

    在上篇博客中,我簡(jiǎn)單比較了瑞麗伯納德對(duì)流的FTLE場(chǎng),但是因?yàn)榱W幼粉櫜捎玫氖菤W拉方法,所以精度不是很高, 因此與文獻(xiàn)中的結(jié)果還是有些差別。 下面放一張文獻(xiàn)中的FTLE場(chǎng),參數(shù)與上篇文章是一致的,Ra = 1e8;Pr = 1; 本文將詳細(xì)的介紹如何得到這樣的圖片,好吧,其實(shí)也

    2024年02月09日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包