当前位置: 首页 > wzjs >正文

怎么用ps做简单网站首页视频下载网站免费

怎么用ps做简单网站首页,视频下载网站免费,北京室内设计师电话,海报设计兼职平台一、概述 本节我们讨论广义旁瓣消除算法(GSC),包括原理分析及代码实现。 更多资料和代码可以进入https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习。 二、原理分析 广义旁瓣消除(GSC)算法 GSC算法是与LCMV算法等效的&…

一、概述

         本节我们讨论广义旁瓣消除算法(GSC),包括原理分析及代码实现。 更多资料和代码可以进入https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习。

二、原理分析

广义旁瓣消除(GSC)算法

        GSC算法是与LCMV算法等效的,其权矢量被分解为自适应部分和非自适应部分,其中自适应部分正交于约束子空间,而非自适应部分位于约束子空间内,其权矢量可以表示为

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        w = w_{q}-Bw_{a}

        其中,w_{q}=(CC^{H})^{-1}Cfw_{a}=(B^{H}R_{x}B)^{-1}B^{H}R_{x}w_{q}B为阻塞矩阵,正交于约束矩阵C,其作用是为了阻止期望信号进入辅助支路。关于B可以通过求C的补空间来确定

        ​​​​​​​        ​​​​​​​        ​​​​​​​        B = I - C(C^{H}C)^{-1}C^{H}

        主支路的输出y = w_{q}^{H}x,阻塞矩阵投影后的输出为z = B^{H}x,那么自适应的权矢量可以表示为

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        w_a = R_z^{-1}P_z 

        其中,R_z = B^{H}R_xBz的协方差矩阵,P_z = B^{H}R_xw_qzy的互协方差矩阵。GSC是LCMV的等效,其将后者的有约束的优化问题变成了无约束的优化问题,当z中含有较少期望信号时,GSC还能正常工作,反之,其性能会大幅度下降。1999年,O.Hoshuyama等人采用约束自适应滤波的方法代替原来的对齐相减,以及采用当期望语音存在时只更新阻塞矩阵,而当期望语音不存在的时候只更新自适应抵消器的系数来减小期望语音信号的泄露。

三、代码仿真

import numpy as np
import soundfile as sf
import scipy
import matplotlib.pyplot as pltfft_size = 256
freq_bin = 129def calculate_circular_array_steering_vector(angle, r=0.0463, N=6, fs=16000, fft_size=256, c=343):steering_vector = np.zeros((N, fft_size//2 + 1), dtype=complex)for f in range(int(fft_size/2+1)):for n in range(N):frequency = fs * f / fft_sizeif frequency == 0:phase_delay = 0steering_vector[n, f] = np.exp(1j * phase_delay)else:lambda_val = c / frequencytheta_mic = -2 * np.pi * n / N + 2 * np.pitheta_signal = np.pi * angle / 180phase_delay = 2 * np.pi * np.cos(theta_signal - theta_mic) * r / lambda_valsteering_vector[n, f] = np.exp(1j*phase_delay)return steering_vectordef calculate_circular_array_steering_vector_anticlockwise(angle, r=0.0463, N=6, fs=16000, fft_size=256, c=343):steering_vector = np.zeros((N, fft_size // 2 + 1), dtype=complex)for f in range(int(fft_size / 2 + 1)):for n in range(N):frequency = fs * f / fft_sizeif frequency == 0:phase_delay = 0steering_vector[n, f] = np.exp(1j * phase_delay)else:lambda_val = c / frequencytheta_mic = 2 * np.pi * n / Ntheta_signal = np.pi * angle / 180phase_delay = 2 * np.pi * np.cos(theta_signal - theta_mic) * r / lambda_valsteering_vector[n, f] = np.exp(1j * phase_delay)return steering_vectordef gsc(C, d, Rxx, data):beamformer = np.zeros((6, freq_bin), dtype=complex)for i in range(freq_bin):C_i = np.reshape(C[i, :, :], (6, 2))wq_i = np.matmul(C_i, np.conjugate(C_i).transpose())wq_i = np.linalg.pinv(wq_i)wq_i = np.matmul(wq_i, C_i)wq_i = np.matmul(wq_i, d)B_i = np.matmul(np.conjugate(C_i).transpose(), C_i)B_i = np.linalg.pinv(B_i)B_i = np.matmul(C_i, B_i)B_i = np.matmul(B_i, np.conjugate(C_i).transpose())B_i = np.eye(6) - B_iRz_i = np.matmul(np.conjugate(B_i).transpose(), np.reshape(Rxx[:,:], (6, 6)))Rz_i = np.matmul(Rz_i, B_i)Pz_i = np.matmul(np.conjugate(B_i).transpose(), np.reshape(Rxx[:,:], (6, 6)))Pz_i = np.matmul(Pz_i, wq_i)wa_i = np.matmul(np.linalg.pinv(Rz_i), Pz_i)w = wq_i - np.matmul(B_i, wa_i)beamformer[:, i] = w.reshape(6, )data1 = np.multiply(np.conjugate(beamformer), data)data2 = np.sum(data1, axis=0) / 6return data2def main():# 读取WAV文件data, samplerate = sf.read('output/simulate_role1_0_t60_0.2_role2_180_t60_0.2.wav')# 定义帧长和帧移frame_length = int(samplerate * 0.016)  # 25ms帧长frame_step = int(samplerate * 0.008)  # 10ms帧移# 创建汉明窗hamming_window = scipy.signal.windows.hamming(frame_length)hamming_window = np.reshape(hamming_window, [frame_length, 1])sample_num = data.shape[0] - frame_length + 1# 手动分帧和加窗frames = []out1 = np.zeros(int(fft_size/2), dtype=float)#lcmvC = np.zeros((freq_bin, 6, 2), dtype=complex)d = np.reshape(np.array([1, 0]), (1, 2)).transpose()desire = calculate_circular_array_steering_vector(0)interf = calculate_circular_array_steering_vector(180)C[:, :, 0] = np.transpose(desire)C[:, :, 1] = np.transpose(interf)for i in range(0, sample_num, frame_step):frame = data[i:i + frame_length, :]windowed_frame = frame * hamming_windowfft_frame = np.fft.fft(windowed_frame, axis=0)fft_frame1 = np.transpose(fft_frame[:freq_bin, :])Rxx_frame_real = np.matmul(fft_frame1, np.conjugate(fft_frame1).transpose()) / 129 + 1e-6 * np.eye(6)fft_frame1 = gsc(C, d, Rxx_frame_real, fft_frame1)fft_frame11 = fft_frame1fft_frame21 = np.concatenate((fft_frame11, fft_frame11[1:-1][::-1].conj()))fft_frame21 = np.transpose(fft_frame21)ifft_frame1 = np.fft.ifft(fft_frame21)short_data1 = ifft_frame1[:int(fft_size/2)] + out1out1 = ifft_frame1[int(fft_size/2):]frames.extend(short_data1)frames1 = np.array(frames).reshape((-1)).realsf.write("output/simulate_role1_0_t60_0.2_role2_180_t60_0.2_out_gsc_t0_i180.wav", frames1, 16000)main()

四、仿真结果

4.1 0度方向为期望信号,180度为干扰方向

4.2 180度方向为期望信号,0度方向为干扰方向

五、总结

        对比发现GSC和LCMV的结果一致,可以验证GSC是LCMV的等效形式。自适应滤波器形式可以参考athena中的代码。

http://www.dtcms.com/wzjs/583244.html

相关文章:

  • 清河网站建设电话响应式网站原理
  • 淮南家政网站建设地址app浏览器下载
  • p2f网站系统备案号怎么添加到网站
  • 企业门户网站设计论文苏州市住房和城乡建设局官网
  • 做视频网站要准备哪些资料快速建站实例演示完整版
  • p2p网站审批有关网站开发的知识
  • 哪家公司做网站不错网站被加入js广告
  • 开发软件网站多少钱图书管理系统网站开发设计过程
  • 深圳专业网站建设制作价格泰安网站建设 九微米
  • 网站发号源码2016网站优化的代码
  • 黄山网站优化临西企业做网站
  • p2p倒闭 网站开发响应式网站建设网站
  • 做网站排名软件最好的搭建网页的平台
  • 复兴企业做网站推广在线代理网页最干净
  • 西安企业网站开发哪家好奉化云优化seo
  • 手表网站官网广州门户网站制作
  • 在线生成个人网站免费天津企业模板建站
  • wordpress 去掉评论做网站优化公司排行
  • 单网页网站源码比特币做游戏币的网站
  • 网站建设资金投入分析关于seo关键词选择有哪些方法
  • 聊城建设银行网站中国建设银行官网站金银纪念币
  • wordpress公司展示网站上海智能网站建设公司
  • 做的网站没法本地上传图片怎么做转载小说网站
  • 电子商务型网站wordpress锚文字
  • 河东天津网站建设品牌网站建设預定大蝌蚪
  • 南头专业企业网站建设公司深圳建网站兴田德润可信
  • 做海淘的网站丹东新区建设发展集团网站
  • 建设工程企业资质工作网站网站改版方案流程
  • 怎样才能建立自已的网站如何建立属于个人网站
  • 布吉附近网站建设公司游戏制作公司排名