【光纤通信】实验一、C语言实现AMI编码

在这里插入图片描述

#include <stdio.h>
#define maxSize 64
void input()
{
    
    
    FILE *fp;
    int bin[maxSize];
    int a[maxSize];
    int index = 0;
    int flag = 0;
    int i = 0;
    int temp = 0;
    fp = fopen("AMI.txt", "r");
    if (fp == NULL)
    {
    
    
        printf("数据错误!");
        return;
    }
    while (1)
    {
    
    
        flag = fscanf(fp, "%d", &bin[index]);
        if (flag == EOF)
        {
    
    
            break;
        }
        index++;
    }
    if (flag)
    {
    
    
        printf("AMI编码后:");
        for (i = 0; i < index; i++)
        {
    
    
            if (bin[i] == 0)
            {
    
    
                output(bin[i]);
                a[i] = bin[i];
            }
            else
            {
    
    
                temp++;
                a[i] = (temp & 0x01) ? 1 : -1;
                output(a[i]);
            }
            printf("%d  ", a[i]);
        }
    }
    printf("\n");
    fclose(fp);
}

int output(int bin){
    
    
    FILE *fp;
    char enter = '\n';
    fp = fopen("AMIOputput.txt","a");
    if(fp == NULL){
    
    
        printf("数据错误!");
        return;
    }
    fprintf(fp,"%d",bin);
    fclose(fp); 
}

int main()
{
    
    
    input();
    return 0;
}

AMI.txt : 1 0 0 110 0 1 0 1 0 1

AMIOputput.txt: 1 0 0 -110 0 -1 0 1 0 -1

下一篇:
【光纤通信】实验一、C语言实现HDB3编码

更多相关文章:
【通信工程】信息类,电子类,电气工程,自动化,计算机,软件工程,机电,等相关专业 全套学习指导

猜你喜欢

转载自blog.csdn.net/qq_45696377/article/details/123347482
今日推荐