news 2025/12/27 15:11:46

通信系统仿真:数字调制与解调技术_(44).FSK调制解调实验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通信系统仿真:数字调制与解调技术_(44).FSK调制解调实验

FSK调制解调实验

1. FSK调制技术概述

1.1. FSK调制的基本原理

频移键控(Frequency Shift Keying, FSK)是一种用不同频率表示数字信号“1”和“0”的调制方法。在FSK调制中,每个数字信号对应一个特定的载波频率。FSK调制的基本原理是将数字信号转换为模拟信号,通过改变载波频率来表示不同的数字信息。

FSK调制的数学表达式可以表示为:
s(t)=Acos⁡(2πf1t+θ)forbit=1 s(t) = A \cos(2\pi f_1 t + \theta) \quad \text{for} \quad \text{bit} = 1s(t)=Acos(2πf1t+θ)forbit=1
s(t)=Acos⁡(2πf0t+θ)forbit=0 s(t) = A \cos(2\pi f_0 t + \theta) \quad \text{for} \quad \text{bit} = 0s(t)=Acos(2πf0t+θ)forbit=0
其中:

  • AAA是载波的幅度
  • f1f_1f1f0f_0f0是表示“1”和“0”的两个不同频率
  • θ\thetaθ是相位

1.2. FSK调制的类型

FSK调制有多种类型,常见的包括二进制频移键控(Binary Frequency Shift Keying, BFSK)和多进制频移键控(Multiple Frequency Shift Keying, MFSK)。

  • BFSK:使用两个不同的频率表示“1”和“0”。例如,1 bit的数据可以对应频率f1f_1f1f0f_0f0
  • MFSK:使用多个不同的频率表示多进制数字信号。例如,4 bit的数据可以对应4个不同的频率。

2. BFSK调制实验

2.1. BFSK调制的实现

2.1.1. BFSK调制的步骤
  1. 生成数字信号:首先生成需要调制的数字信号序列,通常是一个0和1的序列。
  2. 选择载波频率:选择两个不同的载波频率f1f_1f1f0f_0f0分别对应“1”和“0”。
  3. 调制信号:根据数字信号序列的每一位,选择相应的载波频率进行调制。
  4. 生成调制信号:将调制后的信号组合成一个完整的调制信号。
2.1.2. BFSK调制的Python实现

下面是一个使用Python实现BFSK调制的示例代码:

importnumpyasnpimportmatplotlib.pyplotasplt# 生成数字信号defgenerate_digital_signal(length):""" 生成随机的数字信号序列 :param length: 信号长度 :return: 数字信号序列 """returnnp.random.randint(2,size=length)# 生成FSK调制信号defbfsk_modulation(digital_signal,f1,f0,fs,T):""" 生成BFSK调制信号 :param digital_signal: 数字信号序列 :param f1: 表示1的载波频率 :param f0: 表示0的载波频率 :param fs: 采样频率 :param T: 每个符号的持续时间 :return: 调制信号 """t=np.linspace(0,T,int(T*fs),endpoint=False)modulated_signal=np.zeros(int(T*fs*len(digital_signal)))fori,bitinenumerate(digital_signal):ifbit==1:modulated_signal[i*int(T*fs):(i+1)*int(T*fs)]=np.cos(2*np.pi*f1*t)else:modulated_signal[i*int(T*fs):(i+1)*int(T*fs)]=np.cos(2*np.pi*f0*t)returnmodulated_signal# 参数设置length=10f1=1000# 表示1的载波频率f0=500# 表示0的载波频率fs=10000# 采样频率T=1# 每个符号的持续时间# 生成数字信号digital_signal=generate_digital_signal(length)# 生成BFSK调制信号modulated_signal=bfsk_modulation(digital_signal,f1,f0,fs,T)# 绘制数字信号和调制信号plt.figure(figsize=(15,5))plt.subplot(2,1,1)plt.step(range(len(digital_signal)),digital_signal,where='post')plt.title('数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.subplot(2,1,2)plt.plot(modulated_signal)plt.title('BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.tight_layout()plt.show()

2.2. BFSK解调技术

2.2.1. BFSK解调的步骤
  1. 接收调制信号:接收经过信道传输的FSK调制信号。
  2. 设计带通滤波器:设计两个带通滤波器,分别对应f1f_1f1f0f_0f0的频率。
  3. 滤波:将接收的信号通过两个带通滤波器,分别提取出f1f_1f1f0f_0f0的信号分量。
  4. 检测:通过比较两个滤波器输出信号的幅度,确定每个符号是“1”还是“0”。
2.2.2. BFSK解调的Python实现

下面是一个使用Python实现BFSK解调的示例代码:

fromscipy.signalimportbutter,lfilter# 设计带通滤波器defdesign_bandpass_filter(lowcut,highcut,fs,order=5):""" 设计带通滤波器 :param lowcut: 低截止频率 :param highcut: 高截止频率 :param fs: 采样频率 :param order: 滤波器阶数 :return: 滤波器系数 """nyq=0.5*fs low=lowcut/nyq high=highcut/nyq b,a=butter(order,[low,high],btype='band')returnb,a# 应用带通滤波器defapply_bandpass_filter(signal,b,a):""" 应用带通滤波器 :param signal: 输入信号 :param b: 滤波器分子系数 :param a: 滤波器分母系数 :return: 滤波后的信号 """returnlfilter(b,a,signal)# 解调BFSK信号defbfsk_demodulation(modulated_signal,f1,f0,fs,T):""" 解调BFSK信号 :param modulated_signal: 调制信号 :param f1: 表示1的载波频率 :param f0: 表示0的载波频率 :param fs: 采样频率 :param T: 每个符号的持续时间 :return: 解调后的数字信号 """# 设计带通滤波器b1,a1=design_bandpass_filter(f1-100,f1+100,fs)b0,a0=design_bandpass_filter(f0-100,f0+100,fs)# 应用带通滤波器filtered_signal_f1=apply_bandpass_filter(modulated_signal,b1,a1)filtered_signal_f0=apply_bandpass_filter(modulated_signal,b0,a0)# 检测信号demodulated_signal=[]foriinrange(len(digital_signal)):start=i*int(T*fs)end=(i+1)*int(T*fs)energy_f1=np.sum(filtered_signal_f1[start:end]**2)energy_f0=np.sum(filtered_signal_f0[start:end]**2)ifenergy_f1>energy_f0:demodulated_signal.append(1)else:demodulated_signal.append(0)returnnp.array(demodulated_signal)# 解调BFSK信号demodulated_signal=bfsk_demodulation(modulated_signal,f1,f0,fs,T)# 绘制解调后的数字信号plt.figure(figsize=(15,5))plt.subplot(3,1,1)plt.step(range(len(digital_signal)),digital_signal,where='post')plt.title('原始数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.subplot(3,1,2)plt.plot(modulated_signal)plt.title('BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(3,1,3)plt.step(range(len(demodulated_signal)),demodulated_signal,where='post')plt.title('解调后的数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.tight_layout()plt.show()

3. MFSK调制实验

3.1. MFSK调制的实现

3.1.1. MFSK调制的步骤
  1. 生成多进制数字信号:生成需要调制的多进制数字信号序列。
  2. 选择多个载波频率:选择多个不同的载波频率,每个频率对应一个特定的符号。
  3. 调制信号:根据数字信号序列的每一位,选择相应的载波频率进行调制。
  4. 生成调制信号:将调制后的信号组合成一个完整的调制信号。
3.1.2. MFSK调制的Python实现

下面是一个使用Python实现MFSK调制的示例代码:

importnumpyasnpimportmatplotlib.pyplotasplt# 生成多进制数字信号defgenerate_mfsk_signal(length,m):""" 生成随机的多进制数字信号序列 :param length: 信号长度 :param m: 多进制数 :return: 多进制数字信号序列 """returnnp.random.randint(m,size=length)# 生成MFSK调制信号defmfsk_modulation(digital_signal,frequencies,fs,T):""" 生成MFSK调制信号 :param digital_signal: 多进制数字信号序列 :param frequencies: 载波频率列表 :param fs: 采样频率 :param T: 每个符号的持续时间 :return: 调制信号 """t=np.linspace(0,T,int(T*fs),endpoint=False)modulated_signal=np.zeros(int(T*fs*len(digital_signal)))fori,bitinenumerate(digital_signal):modulated_signal[i*int(T*fs):(i+1)*int(T*fs)]=np.cos(2*np.pi*frequencies[bit]*t)returnmodulated_signal# 参数设置length=10m=4# 4进制frequencies=[500,1000,1500,2000]# 4个不同频率fs=10000# 采样频率T=1# 每个符号的持续时间# 生成多进制数字信号mfsk_signal=generate_mfsk_signal(length,m)# 生成MFSK调制信号modulated_signal=mfsk_modulation(mfsk_signal,frequencies,fs,T)# 绘制多进制数字信号和调制信号plt.figure(figsize=(15,5))plt.subplot(2,1,1)plt.step(range(len(mfsk_signal)),mfsk_signal,where='post')plt.title('多进制数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks(range(m))plt.subplot(2,1,2)plt.plot(modulated_signal)plt.title('MFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.tight_layout()plt.show()

3.2. MFSK解调技术

3.2.1. MFSK解调的步骤
  1. 接收调制信号:接收经过信道传输的MFSK调制信号。
  2. 设计多个带通滤波器:设计多个带通滤波器,分别对应不同的载波频率。
  3. 滤波:将接收的信号通过多个带通滤波器,分别提取出各频率的信号分量。
  4. 检测:通过比较各滤波器输出信号的幅度,确定每个符号对应的频率。
3.2.2. MFSK解调的Python实现

下面是一个使用Python实现MFSK解调的示例代码:

fromscipy.signalimportbutter,lfilter# 设计带通滤波器defdesign_bandpass_filter(lowcut,highcut,fs,order=5):""" 设计带通滤波器 :param lowcut: 低截止频率 :param highcut: 高截止频率 :param fs: 采样频率 :param order: 滤波器阶数 :return: 滤波器系数 """nyq=0.5*fs low=lowcut/nyq high=highcut/nyq b,a=butter(order,[low,high],btype='band')returnb,a# 应用带通滤波器defapply_bandpass_filter(signal,b,a):""" 应用带通滤波器 :param signal: 输入信号 :param b: 滤波器分子系数 :param a: 滤波器分母系数 :return: 滤波后的信号 """returnlfilter(b,a,signal)# 解调MFSK信号defmfsk_demodulation(modulated_signal,frequencies,fs,T):""" 解调MFSK信号 :param modulated_signal: 调制信号 :param frequencies: 载波频率列表 :param fs: 采样频率 :param T: 每个符号的持续时间 :return: 解调后的数字信号 """bandpass_filters=[design_bandpass_filter(f-100,f+100,fs)forfinfrequencies]demodulated_signal=[]foriinrange(len(mfsk_signal)):start=i*int(T*fs)end=(i+1)*int(T*fs)energies=[]forb,ainbandpass_filters:filtered_signal=apply_bandpass_filter(modulated_signal[start:end],b,a)energy=np.sum(filtered_signal**2)energies.append(energy)demodulated_signal.append(np.argmax(energies))returnnp.array(demodulated_signal)# 解调MFSK信号demodulated_signal=mfsk_demodulation(modulated_signal,frequencies,fs,T)# 绘制解调后的多进制数字信号plt.figure(figsize=(15,5))plt.subplot(3,1,1)plt.step(range(len(mfsk_signal)),mfsk_signal,where='post')plt.title('原始多进制数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks(range(m))plt.subplot(3,1,2)plt.plot(modulated_signal)plt.title('MFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(3,1,3)plt.step(range(len(demodulated_signal)),demodulated_signal,where='post')plt.title('解调后的多进制数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks(range(m))plt.tight_layout()plt.show()

4. FSK调制解调实验中的噪声影响

4.1. 噪声的引入

在实际的通信系统中,调制信号在传输过程中会受到各种噪声的影响,这些噪声会影响解调的准确性。常见的噪声类型包括高斯白噪声(Additive White Gaussian Noise, AWGN)和多径衰落噪声。

4.2. 噪声对FSK调制解调的影响

4.2.1. 高斯白噪声的影响

高斯白噪声是一种常见的噪声类型,其特点是噪声的幅度服从高斯分布,且在频域上是平坦的。在FSK调制解调实验中,高斯白噪声会增加信号的随机性,导致解调后的信号出现误码。

下面是一个引入高斯白噪声的Python示例代码:

importnumpyasnpimportmatplotlib.pyplotasplt# 生成高斯白噪声defgenerate_awgn(signal,snr):""" 生成高斯白噪声 :param signal: 输入信号 :param snr: 信噪比 :return: 噪声信号 """signal_power=np.sum(signal**2)/len(signal)noise_power=signal_power/(10**(snr/10))noise=np.sqrt(noise_power)*np.random.randn(len(signal))returnsignal+noise# 参数设置length=10f1=1000# 表示1的载波频率f0=500# 表示0的载波频率fs=10000# 采样频率T=1# 每个符号的持续时间snr=10# 信噪比# 生成数字信号digital_signal=generate_digital_signal(length)# 生成BFSK调制信号modulated_signal=bfsk_modulation(digital_signal,f1,f0,fs,T)# 引入高斯白噪声noisy_signal=generate_awgn(modulated_signal,snr)# 绘制数字信号、调制信号和噪声信号plt.figure(figsize=(15,10))plt.subplot(3,1,1)plt.step(range(len(digital_signal)),digital_signal,where='post')plt.title('原始数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.subplot(3,1,2)plt.plot(modulated_signal)plt.title('BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(3,1,3)plt.plot(noisy_signal)plt.title('加入高斯白噪声后的BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.tight_layout()plt.show()

4.2.2. BFSK解调在噪声环境下的表现

在引入高斯白噪声后,我们需要观察BFSK解调的性能。解调后的信号可能会出现误码,我们可以通过计算误码率(Bit Error Rate, BER)来评估解调的准确性。

下面是一个在噪声环境下解调BFSK信号并计算误码率的Python示例代码:

# 解调BFSK信号demodulated_signal=bfsk_demodulation(noisy_signal,f1,f0,fs,T)# 计算误码率defcalculate_ber(original_signal,demodulated_signal):""" 计算误码率 :param original_signal: 原始数字信号 :param demodulated_signal: 解调后的数字信号 :return: 误码率 """errors=np.sum(original_signal!=demodulated_signal)ber=errors/len(original_signal)returnber# 计算误码率ber=calculate_ber(digital_signal,demodulated_signal)print(f'误码率:{ber}')# 绘制原始数字信号、调制信号、噪声信号和解调后的数字信号plt.figure(figsize=(15,10))plt.subplot(4,1,1)plt.step(range(len(digital_signal)),digital_signal,where='post')plt.title('原始数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.subplot(4,1,2)plt.plot(modulated_signal)plt.title('BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,3)plt.plot(noisy_signal)plt.title('加入高斯白噪声后的BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,4)plt.step(range(len(demodulated_signal)),demodulated_signal,where='post')plt.title('解调后的数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.tight_layout()plt.show()

4.3. 多径衰落噪声的影响

多径衰落噪声是由于信号在传输过程中经过多个路径到达接收端,导致信号的幅度和相位发生变化。这种噪声在无线通信中尤为常见,会影响FSK调制解调的性能。

4.3.1. 多径衰落噪声的引入

我们可以使用PyTorch或其他仿真工具来模拟多径衰落噪声。下面是一个简单的示例代码:

importnumpyasnpimportmatplotlib.pyplotaspltimporttorch# 生成多径衰落信道defgenerate_multipath_channel(n_paths,length,fs):""" 生成多径衰落信道 :param n_paths: 路径数量 :param length: 信号长度 :param fs: 采样频率 :return: 多径衰落信道 """t=np.linspace(0,length/fs,length)channel=np.zeros(length)for_inrange(n_paths):delay=np.random.uniform(0,length/fs)gain=np.random.normal(0,1)channel+=gain*np.exp(-2j*np.pi*delay*t)returnchannel# 应用多径衰落信道defapply_multipath_channel(signal,channel):""" 应用多径衰落信道 :param signal: 输入信号 :param channel: 多径衰落信道 :return: 通过信道后的信号 """returnnp.convolve(signal,channel,mode='same')# 参数设置n_paths=3# 路径数量channel=generate_multipath_channel(n_paths,len(modulated_signal),fs)multipath_signal=apply_multipath_channel(modulated_signal,channel)# 绘制数字信号、调制信号、多径衰落信号plt.figure(figsize=(15,10))plt.subplot(3,1,1)plt.step(range(len(digital_signal)),digital_signal,where='post')plt.title('原始数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.subplot(3,1,2)plt.plot(modulated_signal)plt.title('BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(3,1,3)plt.plot(multipath_signal)plt.title('加入多径衰落后的BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.tight_layout()plt.show()

4.3.2. BFSK解调在多径衰落环境下的表现

在引入多径衰落噪声后,我们需要观察BFSK解调的性能。解调后的信号可能会出现更多的误码,我们可以通过计算误码率来评估解调的准确性。

下面是一个在多径衰落环境下解调BFSK信号并计算误码率的Python示例代码:

# 解调BFSK信号demodulated_signal_multipath=bfsk_demodulation(multipath_signal,f1,f0,fs,T)# 计算误码率ber_multipath=calculate_ber(digital_signal,demodulated_signal_multipath)print(f'多径衰落下的误码率:{ber_multipath}')# 绘制原始数字信号、调制信号、多径衰落信号和解调后的数字信号plt.figure(figsize=(15,10))plt.subplot(4,1,1)plt.step(range(len(digital_signal)),digital_signal,where='post')plt.title('原始数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.subplot(4,1,2)plt.plot(modulated_signal)plt.title('BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,3)plt.plot(multipath_signal)plt.title('加入多径衰落后的BFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,4)plt.step(range(len(demodulated_signal_multipath)),demodulated_signal_multipath,where='post')plt.title('多径衰落环境下的解调后的数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks([0,1])plt.tight_layout()plt.show()

4.4. 噪声对MFSK调制解调的影响

4.4.1. 高斯白噪声的影响

高斯白噪声同样会影响MFSK调制解调的性能。在MFSK调制解调实验中,高斯白噪声会增加信号的随机性,导致解调后的信号出现误码。

下面是一个引入高斯白噪声并解调MFSK信号的Python示例代码:

# 生成高斯白噪声noisy_signal_mfsk=generate_awgn(modulated_signal,snr)# 解调MFSK信号demodulated_signal_mfsk=mfsk_demodulation(noisy_signal_mfsk,frequencies,fs,T)# 计算误码率ber_mfsk=calculate_ber(mfsk_signal,demodulated_signal_mfsk)print(f'MFSK在高斯白噪声下的误码率:{ber_mfsk}')# 绘制原始多进制数字信号、调制信号、噪声信号和解调后的数字信号plt.figure(figsize=(15,10))plt.subplot(4,1,1)plt.step(range(len(mfsk_signal)),mfsk_signal,where='post')plt.title('原始多进制数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks(range(m))plt.subplot(4,1,2)plt.plot(modulated_signal)plt.title('MFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,3)plt.plot(noisy_signal_mfsk)plt.title('加入高斯白噪声后的MFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,4)plt.step(range(len(demodulated_signal_mfsk)),demodulated_signal_mfsk,where='post')plt.title('解调后的多进制数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks(range(m))plt.tight_layout()plt.show()
4.4.2. 多径衰落噪声的影响

多径衰落噪声同样会影响MFSK调制解调的性能。在MFSK调制解调实验中,多径衰落噪声会增加信号的幅度和相位变化,导致解调后的信号出现误码。

下面是一个在多径衰落环境下解调MFSK信号并计算误码率的Python示例代码:

# 应用多径衰落信道multipath_signal_mfsk=apply_multipath_channel(modulated_signal,channel)# 解调MFSK信号demodulated_signal_multipath_mfsk=mfsk_demodulation(multipath_signal_mfsk,frequencies,fs,T)# 计算误码率ber_multipath_mfsk=calculate_ber(mfsk_signal,demodulated_signal_multipath_mfsk)print(f'MFSK在多径衰落下的误码率:{ber_multipath_mfsk}')# 绘制原始多进制数字信号、调制信号、多径衰落信号和解调后的数字信号plt.figure(figsize=(15,10))plt.subplot(4,1,1)plt.step(range(len(mfsk_signal)),mfsk_signal,where='post')plt.title('原始多进制数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks(range(m))plt.subplot(4,1,2)plt.plot(modulated_signal)plt.title('MFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,3)plt.plot(multipath_signal_mfsk)plt.title('加入多径衰落后的MFSK调制信号')plt.xlabel('时间')plt.ylabel('幅度')plt.subplot(4,1,4)plt.step(range(len(demodulated_signal_multipath_mfsk)),demodulated_signal_multipath_mfsk,where='post')plt.title('多径衰落环境下的解调后的多进制数字信号')plt.xlabel('时间')plt.ylabel('幅度')plt.yticks(range(m))plt.tight_layout()plt.show()

4.5. 总结

通过上述实验,我们观察到了高斯白噪声和多径衰落噪声对FSK调制解调性能的影响。噪声的引入会导致解调后的信号出现误码,误码率的计算可以帮助我们评估通信系统的性能。在实际应用中,可以通过增加信噪比、使用更复杂的滤波器和解调算法来减少噪声的影响,提高通信的可靠性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/26 17:28:13

【AI黑科技】6.89%性能炸裂!ASFR框架让知识图谱“开天眼“,小白程序员也能玩转大模型增强技术

摘要 当前知识图谱通常存在不完整性的挑战,可以通过链接预测任务对缺失信息进行补全来缓解这一问题. 然而,大部分知识图谱补全方法过度关注对嵌入特征的提取,没有充分考虑预测节点邻域信息、全局特征信息和方向特征信息中所包含的复杂语义&am…

作者头像 李华
网站建设 2025/12/20 10:54:42

Google最新AI Agents课程全解析!337页白皮书浓缩精华,从入门到精通,手把手教你成为Agent开发大神!

上周我分享了[Google推出的Agents入门课程及相关白皮书]。课程中重点推荐了5篇Google最新的Agents技术白皮书,内容涵盖从架构设计到生产实践的全面总结,共计337页,约十万余字。考虑到内容篇幅较大,我将其浓缩整理为一份约5000字的…

作者头像 李华
网站建设 2025/12/27 1:30:56

介观交通流仿真软件:Aimsun Next_(10).动态交通分配

动态交通分配 1. 动态交通分配概述 动态交通分配(Dynamic Traffic Assignment, DTA)是交通仿真中的一项关键技术,它不仅考虑交通网络的静态属性,还模拟交通流量随时间和空间的变化。与静态交通分配不同,动态交通分配能…

作者头像 李华
网站建设 2025/12/23 10:11:43

C语言学习第四天

在系统学习C语言编程的过程中&#xff0c;我深入掌握了for循环结构及其在分支循环中的应用。具体来说&#xff0c;我研究了for语句的多种高级用法&#xff0c;包括&#xff1a;基础for循环语法&#xff1a;for(初始化;条件;增量)多变量控制&#xff1a;for(int i0,j10; i<j;…

作者头像 李华
网站建设 2025/12/27 0:45:44

通信工程毕设易上手课题指导

【单片机毕业设计项目分享系列】 &#x1f525; 这里是DD学长&#xff0c;单片机毕业设计及享100例系列的第一篇&#xff0c;目的是分享高质量的毕设作品给大家。 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的单片机项目缺少创新和亮点…

作者头像 李华
网站建设 2025/12/23 4:26:23

单链表逆转

一、题目要求 1.1 需求与接口 实现函数 List Reverse( List L )&#xff0c;输入单链表头指针L&#xff0c;返回逆转后的链表头指针。 1.2 数据结构定义 typedef int ElementType; typedef struct Node *PtrToNode; struct Node { // 节点结构&#xff1a;数据域指针域Elem…

作者头像 李华