fortran:计算卷积

计算卷积的物理意义与公式网上与书上很多,这里不再赘述。
下面是计算两个向量u和v的fortran代码
program test_conv
        !// 计算向量u和v的卷积
        implicit none
        integer            :: i, k
        integer, parameter :: m = 3, n = 8  !// 向量u和向量v的长度
        real               :: u(0:m-1) = [1, 1, 1], v(0:n-1) = [1, 1, 0, 0, 0, 1, 1, 1]
        real               :: conv(0:m+n-2)
        real               :: s1, s2 

        conv = 0.
        do i = 0, m+n-2

                do k = 0, m+n-2
                        if (k >= 0 .and. k <= m-1) then
                                s1 = u(k)
                        else
                                s1 = 0.
                        end if

                        if (i-k >=0 .and. i-k <= n-1) then
                                s2 = v(i-k)
                        else
                                s2 = 0.
                        end if

                        conv(i) = conv(i) + s1*s2
                end do

        end do

        print*, conv

end program test_conv

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值