线性卷积就是多项式系数乘法:设a的长度是M,b的长度是N,则a卷积b的长度是M+N-1,运算参见多项式乘法。
两个周期序列的卷积称为周期卷积,其计算步骤与非周期序列的线性卷积类似。
循环卷积与周期卷积并没有本质区别。
“L点的循环卷积”是把先做线性卷积,再把结果的前L点保留不动,后面的点截下来,加到结果的头上去。
扩展资料:
线性卷积的计算可以用解析法,也可以用图解法。若两 个序列的长度分别为N1和N2,则卷积结果的总长度应为L=N1+N2-1。
同理,对线性非时变连续系统来说,若连续时间信号x(t)是系统的输入,h(t)是系统在单位脉冲作用下的单位冲激响应,则系统在零状态的输出为它们的卷积积分。
线性卷积是数字信号处理中最常见的一种基本运算,不仅用于系统分析还用于系统设计。如果代表滤波器的脉冲响应则卷积运算就是一种线性滤波,y(n)是信号x(n)通过滤波器后的响应。
参考资料来源:百度百科-循环卷积
其实周期卷积就是循环卷积的周期延拓!循环卷积书上的公式乘以了一个N点的单位阶跃序列,否则周期卷积和循环卷积结果是相同的当然周期卷积在定义上X1也是周期的但是X1(m)只取0~N-1的所以周期在结果上无意义解法1,使用for循环做:#include<stdioh>
void main(){
long i,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
for(i=1;i<=n;i++){
result=i;
}
printf("%ld!=%ld",n,result);
}
解法2,使用while循环做:
#include<stdioh>
void main(){
long i=1,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
while(i<=n){
result=i;
i++;
}
printf("%ld!=%ld",n,result);
}
解法3,使用dowhile循环做:
#include<stdioh>
void main(){
long i=0,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
do{
i++;
result=i;
}while(i<=n);
printf("%ld!=%ld",n,result);
}
解法4,使用递归做:
#include<stdioh>
long calc(long num){
if(num==0){
return 0;
}else if(num==1){
return 1;
}else{
return numcalc(num-1);
}
}
void main(){
long n;
printf("请输入n的值:");
scanf("%ld",&n);
printf("%ld!=%ld",n,calc(n));
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)